SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
UU - IT - UDBL                                                                   1




                   DATABASE DESIGN I - 1DL300
                                     Summer 2009


                    An introductury course on database systems
                              http://user.it.uu.se/~udbl/dbt-sommar09/
                 alt. http://www.it.uu.se/edu/course/homepage/dbastekn/st09/


                                        Kjell Orsborn
                                    Uppsala Database Laboratory
                     Department of Information Technology, Uppsala University,
                                         Uppsala, Sweden

Kjell Orsborn                                8/12/09
UU - IT - UDBL                                          2




                    Database API:s

                     (Elmasri/Navathe ch. 9)
                  (Padron-McCarthy/Risch ch 20)


                           Kjell Orsborn

                 Department of Information Technology
                 Uppsala University, Uppsala, Sweden




Kjell Orsborn                   8/12/09
UU - IT - UDBL                                                                 3




                  Database user interfaces

• Textual interfaces
       – Such as BSQL for Mimer
• Graphical interfaces
       – Most well-known is QBE (Query-By-Example) originally developed by
         IBM. MS Access uses a QBE variant.
• SQL application programming interfaces
       – Requires management of sessions, sql statements and some control of
         query optimization.
       – Call-level interfaces
       – Embedded SQL



Kjell Orsborn                         8/12/09
UU - IT - UDBL                                                                                4



                             Call-Level Interfaces
•    Vendor-specific call-level interfaces
       – An SQL API usually for one or several host languages like C, C++, Java, Fortan, COBOL etc.
       – Support to manage sessions, SQL statements and data conversions
•    SQL Call Level Interface (CLI),
       – The Call Level Interface (CLI) is a standard SQL API created by The Open Group. The API is
         defined for C and COBOL only. ISBN: 1-85912-081-4, X/Open Document Number: C451,
         1995.
•    SQL/CLI
       – Call-Level Interface (SQL/CLI) is an implementation-independent CLI to access SQL
         databases. SQL/CLI is an ISO standard ISO/IEC 9075-3:1995 Information technology --
         Database languages -- SQL -- Part 3: Call-Level Interface (SQL/CLI). The current SQL/CLI
         effort is adding support for SQL:1999.
•    ODBC
       – (Microsoft) Open Database Connectivity is a standard SQL API. ODBC is based on the Call
         Level Interface (CLI) specifications from SQL, X/Open (now part of The Open Group), and
         the ISO/IEC. ODBC was created by the SQL Access Group and released Sept, 1992.
•    JDBC - Java Database Connectivity
       – JDBC is an SQL API for Java (to be strictly correct, JDBC is not an acronym).

Kjell Orsborn                                 8/12/09
UU - IT - UDBL                                     5




                 The ODBC architecture
• ODBC API is independent of any one programming
  language, database system or operating system.




Kjell Orsborn             8/12/09
UU - IT - UDBL                                                 6




                 The JDBC architecture
• JDBC API is independent of (relational) DBMS and operating
  system




Kjell Orsborn               8/12/09
UU - IT - UDBL                                            7




      Alt. JDBC architecture (JDBC-ODBC bridge)
• Makes ODBC accessible from JDBC such that no special JDBC
  drivers are required.




Kjell Orsborn              8/12/09
UU - IT - UDBL                                                                          8




       Programming with SQL CLI interfaces
                                  JDBC example

•    The JDBC API (Application Program Interface) is a set of Java interfaces
     that allow database applications to:
       – open connections to a database,
       – execute SQL statements, and
       – process the results.
•    These include:
       – java.sql.DriverManager, which loads the specific drivers and supports creating
         new database connections
       – java.sql.Connection, which represents a connection to a specific database
       – java.sql.Statement, which allows the application to execute a SQL statement
       – java.sql.PreparedStatement, which represents a pre-compiled SQL statement
       – java.sql.ResultSet, controls access to rows resulting from executing a statement


Kjell Orsborn                              8/12/09
UU - IT - UDBL                                                                          9


                                          JDBC example
        import java.sql.*;

        public class JDBCExample {

           public static void main(String args[]) {

                 String url = "jdbc:mySubprotocol:myDataSource";
                 Connection con;
                 String query = "SELECT NAME FROM EMPLOYEE WHERE INCOME > 10000";
                 Statement stmt;

                 try {
                     Class.forName("myDriver.ClassName");
                 }catch(java.lang.ClassNotFoundException e) {
                    System.err.print("ClassNotFoundException: ");
                    System.err.println(e.getMessage());
                 }

                 try {
                     con = DriverManager.getConnection(url, "myLogin", "myPassword");
                     stmt = con.createStatement();
                     ResultSet rs = stmt.executeQuery(query);
                     while (rs.next()) {
                        String s = rs.getString(”NAME");
                        System.out.println(s);
                     }
                     rs.close();
                     stmt.close();
                     con.close();
                 }catch(SQLException ex) {
                    System.err.print("SQLException: ");
                    System.err.println(ex.getMessage()); }}}

Kjell Orsborn                                 8/12/09
UU - IT - UDBL                                                                     10


                              JDBC example (prepared statement)
  import java.sql.*;

  public class JDBCExample {
     public static void main(String args[]) {

            String url = "jdbc:mySubprotocol:myDataSource";
            Connection con;
            String query = "SELECT NAME FROM EMPLOYEE WHERE INCOME > ?;
            Int incomeLimit;
            PreparedStatement stmt;

            try {
                Class.forName("myDriver.ClassName");
            }catch(java.lang.ClassNotFoundException e) {
               System.err.print("ClassNotFoundException: ");
               System.err.println(e.getMessage());
            }
            try {
                con = DriverManager.getConnection(url, "myLogin", "myPassword");
            stmt = con.prepareStatement(query);
            while(....) {
               .... // Code to read lower income limit into incomeLimit
            stmt.setInt(1,incomeLimit);
            ResultSet rs = stmt.executeQuery();
                while (rs.next()) {
                   System.out.println(rs.getString(”NAME"));
                }}
                rs.close();
                stmt.close();
                con.close();
            }catch(SQLException ex) {
               System.err.print("SQLException: ");
               System.err.println(ex.getMessage()); }}}
Kjell Orsborn                                 8/12/09
UU - IT - UDBL                                                                11




                          Embedded SQL

•    Host language include embedded and specially marked SQL statements.
•    Embedded statements are extracted by preprocessor, translated and replaced
     by database calls, precompiled (prepared) and stored on server.
•    The preprocessed application is then compiled normally
•    Supports dynamic recompilation
•    Reduces optimization cost and can be somewhat simpler than CLI
     programming.




Kjell Orsborn                         8/12/09

Mais conteúdo relacionado

Mais procurados

06 Using More Package Concepts
06 Using More Package Concepts06 Using More Package Concepts
06 Using More Package Conceptsrehaniltifat
 
05 Creating Stored Procedures
05 Creating Stored Procedures05 Creating Stored Procedures
05 Creating Stored Proceduresrehaniltifat
 
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004derek_clark_ashmore
 
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004derek_clark_ashmore
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilarrehaniltifat
 
02 Writing Executable Statments
02 Writing Executable Statments02 Writing Executable Statments
02 Writing Executable Statmentsrehaniltifat
 
Less01 architecture
Less01 architectureLess01 architecture
Less01 architectureAmit Bhalla
 
Ebs dba con4696_pdf_4696_0001
Ebs dba con4696_pdf_4696_0001Ebs dba con4696_pdf_4696_0001
Ebs dba con4696_pdf_4696_0001jucaab
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...rehaniltifat
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should KnowDBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should KnowAlex Zaballa
 
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadatarehaniltifat
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...Alex Zaballa
 
Less07 schema
Less07 schemaLess07 schema
Less07 schemaImran Ali
 
Less14 br concepts
Less14 br conceptsLess14 br concepts
Less14 br conceptsAmit Bhalla
 
Improving the Performance of PL/SQL function calls from SQL
Improving the Performance of PL/SQL function calls from SQLImproving the Performance of PL/SQL function calls from SQL
Improving the Performance of PL/SQL function calls from SQLGuatemala User Group
 
3963066 pl-sql-notes-only
3963066 pl-sql-notes-only3963066 pl-sql-notes-only
3963066 pl-sql-notes-onlyAshwin Kumar
 

Mais procurados (20)

06 Using More Package Concepts
06 Using More Package Concepts06 Using More Package Concepts
06 Using More Package Concepts
 
plsql les10
 plsql les10 plsql les10
plsql les10
 
05 Creating Stored Procedures
05 Creating Stored Procedures05 Creating Stored Procedures
05 Creating Stored Procedures
 
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004
Jdbc Best Practices - Oracle/IOUG, Toronto, April 21, 2004
 
Less03 db dbca
Less03 db dbcaLess03 db dbca
Less03 db dbca
 
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004
Jdbc Best Practices - DB2/ IDUG - Orlando, May 10, 2004
 
11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar11 Understanding and Influencing the PL/SQL Compilar
11 Understanding and Influencing the PL/SQL Compilar
 
PHP Oracle
PHP OraclePHP Oracle
PHP Oracle
 
02 Writing Executable Statments
02 Writing Executable Statments02 Writing Executable Statments
02 Writing Executable Statments
 
Less01 architecture
Less01 architectureLess01 architecture
Less01 architecture
 
Ebs dba con4696_pdf_4696_0001
Ebs dba con4696_pdf_4696_0001Ebs dba con4696_pdf_4696_0001
Ebs dba con4696_pdf_4696_0001
 
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
03 Writing Control Structures, Writing with Compatible Data Types Using Expli...
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should KnowDBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
 
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata
 
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
 
Less07 schema
Less07 schemaLess07 schema
Less07 schema
 
Less14 br concepts
Less14 br conceptsLess14 br concepts
Less14 br concepts
 
Improving the Performance of PL/SQL function calls from SQL
Improving the Performance of PL/SQL function calls from SQLImproving the Performance of PL/SQL function calls from SQL
Improving the Performance of PL/SQL function calls from SQL
 
321 Rac
321 Rac321 Rac
321 Rac
 
3963066 pl-sql-notes-only
3963066 pl-sql-notes-only3963066 pl-sql-notes-only
3963066 pl-sql-notes-only
 

Semelhante a Database design i_-_1_dl300

Advanced sql injection
Advanced sql injectionAdvanced sql injection
Advanced sql injectionbadhanbd
 
SQLCLR For DBAs and Developers
SQLCLR For DBAs and DevelopersSQLCLR For DBAs and Developers
SQLCLR For DBAs and Developerswebhostingguy
 
Dr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. HydeDr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. Hydewebhostingguy
 
Advanced SQL - Database Access from Programming Languages
Advanced SQL - Database Access  from Programming LanguagesAdvanced SQL - Database Access  from Programming Languages
Advanced SQL - Database Access from Programming LanguagesS.Shayan Daneshvar
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration BackendArun Gupta
 
OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL Suraj Bang
 
SQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developersSQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developersKrzysztof Kotowicz
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012Arun Gupta
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
Java Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingJava Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingAnton Keks
 
PROGRAMMING IN JAVA -unit 5 -part I
PROGRAMMING IN JAVA -unit 5 -part IPROGRAMMING IN JAVA -unit 5 -part I
PROGRAMMING IN JAVA -unit 5 -part ISivaSankari36
 
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdfVision_Academy_Ajava_final(sachin_sir9823037693)_22.pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdfVisionAcademyProfSac
 
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdfVision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdfbhagyashri686896
 

Semelhante a Database design i_-_1_dl300 (20)

Advanced sql injection
Advanced sql injectionAdvanced sql injection
Advanced sql injection
 
SQLCLR For DBAs and Developers
SQLCLR For DBAs and DevelopersSQLCLR For DBAs and Developers
SQLCLR For DBAs and Developers
 
Dr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. HydeDr. Jekyll and Mr. Hyde
Dr. Jekyll and Mr. Hyde
 
Advanced SQL - Database Access from Programming Languages
Advanced SQL - Database Access  from Programming LanguagesAdvanced SQL - Database Access  from Programming Languages
Advanced SQL - Database Access from Programming Languages
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration Backend
 
OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL
 
Day2
Day2Day2
Day2
 
Jdbc
JdbcJdbc
Jdbc
 
SQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developersSQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developers
 
GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012GlassFish REST Administration Backend at JavaOne India 2012
GlassFish REST Administration Backend at JavaOne India 2012
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Jdbc
JdbcJdbc
Jdbc
 
SQL injection: Not only AND 1=1
SQL injection: Not only AND 1=1SQL injection: Not only AND 1=1
SQL injection: Not only AND 1=1
 
Lecture17
Lecture17Lecture17
Lecture17
 
Java Course 13: JDBC & Logging
Java Course 13: JDBC & LoggingJava Course 13: JDBC & Logging
Java Course 13: JDBC & Logging
 
Jdbc
JdbcJdbc
Jdbc
 
PROGRAMMING IN JAVA -unit 5 -part I
PROGRAMMING IN JAVA -unit 5 -part IPROGRAMMING IN JAVA -unit 5 -part I
PROGRAMMING IN JAVA -unit 5 -part I
 
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdfVision_Academy_Ajava_final(sachin_sir9823037693)_22.pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22.pdf
 
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdfVision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdf
Vision_Academy_Ajava_final(sachin_sir9823037693)_22 (1).pdf
 
Jdbc ja
Jdbc jaJdbc ja
Jdbc ja
 

Último

Design principles on typography in design
Design principles on typography in designDesign principles on typography in design
Design principles on typography in designnooreen17
 
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024CristobalHeraud
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfShivakumar Viswanathan
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...katerynaivanenko1
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Nightssuser7cb4ff
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back17lcow074
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Rndexperts
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girlsssuser7cb4ff
 
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
Iconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic global solution
 
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services DubaiDubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubaikojalkojal131
 
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一z xss
 
ARt app | UX Case Study
ARt app | UX Case StudyARt app | UX Case Study
ARt app | UX Case StudySophia Viganò
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一F La
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造kbdhl05e
 
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...mrchrns005
 
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Yantram Animation Studio Corporation
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,Aginakm1
 

Último (20)

Design principles on typography in design
Design principles on typography in designDesign principles on typography in design
Design principles on typography in design
 
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024
PORTFOLIO DE ARQUITECTURA CRISTOBAL HERAUD 2024
 
FiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdfFiveHypotheses_UIDMasterclass_18April2024.pdf
FiveHypotheses_UIDMasterclass_18April2024.pdf
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
 
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full NightCall Girls Aslali 7397865700 Ridhima Hire Me Full Night
Call Girls Aslali 7397865700 Ridhima Hire Me Full Night
 
shot list for my tv series two steps back
shot list for my tv series two steps backshot list for my tv series two steps back
shot list for my tv series two steps back
 
Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025Top 10 Modern Web Design Trends for 2025
Top 10 Modern Web Design Trends for 2025
 
Call Girls Meghani Nagar 7397865700 Independent Call Girls
Call Girls Meghani Nagar 7397865700  Independent Call GirlsCall Girls Meghani Nagar 7397865700  Independent Call Girls
Call Girls Meghani Nagar 7397865700 Independent Call Girls
 
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
2024新版美国旧金山州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
Iconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing servicesIconic Global Solution - web design, Digital Marketing services
Iconic Global Solution - web design, Digital Marketing services
 
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services DubaiDubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
Dubai Calls Girl Tapes O525547819 Real Tapes Escort Services Dubai
 
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
办理(UC毕业证书)查尔斯顿大学毕业证成绩单原版一比一
 
ARt app | UX Case Study
ARt app | UX Case StudyARt app | UX Case Study
ARt app | UX Case Study
 
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
办理(宾州州立毕业证书)美国宾夕法尼亚州立大学毕业证成绩单原版一比一
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造
 
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
Business research proposal mcdo.pptxBusiness research proposal mcdo.pptxBusin...
 
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
Unveiling the Future: Columbus, Ohio Condominiums Through the Lens of 3D Arch...
 
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制堪培拉大学毕业证(UC毕业证)#文凭成绩单#真实留信学历认证永久存档
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
 

Database design i_-_1_dl300

  • 1. UU - IT - UDBL 1 DATABASE DESIGN I - 1DL300 Summer 2009 An introductury course on database systems http://user.it.uu.se/~udbl/dbt-sommar09/ alt. http://www.it.uu.se/edu/course/homepage/dbastekn/st09/ Kjell Orsborn Uppsala Database Laboratory Department of Information Technology, Uppsala University, Uppsala, Sweden Kjell Orsborn 8/12/09
  • 2. UU - IT - UDBL 2 Database API:s (Elmasri/Navathe ch. 9) (Padron-McCarthy/Risch ch 20) Kjell Orsborn Department of Information Technology Uppsala University, Uppsala, Sweden Kjell Orsborn 8/12/09
  • 3. UU - IT - UDBL 3 Database user interfaces • Textual interfaces – Such as BSQL for Mimer • Graphical interfaces – Most well-known is QBE (Query-By-Example) originally developed by IBM. MS Access uses a QBE variant. • SQL application programming interfaces – Requires management of sessions, sql statements and some control of query optimization. – Call-level interfaces – Embedded SQL Kjell Orsborn 8/12/09
  • 4. UU - IT - UDBL 4 Call-Level Interfaces • Vendor-specific call-level interfaces – An SQL API usually for one or several host languages like C, C++, Java, Fortan, COBOL etc. – Support to manage sessions, SQL statements and data conversions • SQL Call Level Interface (CLI), – The Call Level Interface (CLI) is a standard SQL API created by The Open Group. The API is defined for C and COBOL only. ISBN: 1-85912-081-4, X/Open Document Number: C451, 1995. • SQL/CLI – Call-Level Interface (SQL/CLI) is an implementation-independent CLI to access SQL databases. SQL/CLI is an ISO standard ISO/IEC 9075-3:1995 Information technology -- Database languages -- SQL -- Part 3: Call-Level Interface (SQL/CLI). The current SQL/CLI effort is adding support for SQL:1999. • ODBC – (Microsoft) Open Database Connectivity is a standard SQL API. ODBC is based on the Call Level Interface (CLI) specifications from SQL, X/Open (now part of The Open Group), and the ISO/IEC. ODBC was created by the SQL Access Group and released Sept, 1992. • JDBC - Java Database Connectivity – JDBC is an SQL API for Java (to be strictly correct, JDBC is not an acronym). Kjell Orsborn 8/12/09
  • 5. UU - IT - UDBL 5 The ODBC architecture • ODBC API is independent of any one programming language, database system or operating system. Kjell Orsborn 8/12/09
  • 6. UU - IT - UDBL 6 The JDBC architecture • JDBC API is independent of (relational) DBMS and operating system Kjell Orsborn 8/12/09
  • 7. UU - IT - UDBL 7 Alt. JDBC architecture (JDBC-ODBC bridge) • Makes ODBC accessible from JDBC such that no special JDBC drivers are required. Kjell Orsborn 8/12/09
  • 8. UU - IT - UDBL 8 Programming with SQL CLI interfaces JDBC example • The JDBC API (Application Program Interface) is a set of Java interfaces that allow database applications to: – open connections to a database, – execute SQL statements, and – process the results. • These include: – java.sql.DriverManager, which loads the specific drivers and supports creating new database connections – java.sql.Connection, which represents a connection to a specific database – java.sql.Statement, which allows the application to execute a SQL statement – java.sql.PreparedStatement, which represents a pre-compiled SQL statement – java.sql.ResultSet, controls access to rows resulting from executing a statement Kjell Orsborn 8/12/09
  • 9. UU - IT - UDBL 9 JDBC example import java.sql.*; public class JDBCExample {    public static void main(String args[]) { String url = "jdbc:mySubprotocol:myDataSource"; Connection con; String query = "SELECT NAME FROM EMPLOYEE WHERE INCOME > 10000"; Statement stmt; try {     Class.forName("myDriver.ClassName"); }catch(java.lang.ClassNotFoundException e) {    System.err.print("ClassNotFoundException: ");    System.err.println(e.getMessage()); } try {     con = DriverManager.getConnection(url, "myLogin", "myPassword");     stmt = con.createStatement();     ResultSet rs = stmt.executeQuery(query);     while (rs.next()) {     String s = rs.getString(”NAME");        System.out.println(s);     }     rs.close();     stmt.close();     con.close(); }catch(SQLException ex) {    System.err.print("SQLException: ");    System.err.println(ex.getMessage()); }}} Kjell Orsborn 8/12/09
  • 10. UU - IT - UDBL 10 JDBC example (prepared statement) import java.sql.*; public class JDBCExample {    public static void main(String args[]) { String url = "jdbc:mySubprotocol:myDataSource"; Connection con; String query = "SELECT NAME FROM EMPLOYEE WHERE INCOME > ?; Int incomeLimit; PreparedStatement stmt; try {     Class.forName("myDriver.ClassName"); }catch(java.lang.ClassNotFoundException e) {    System.err.print("ClassNotFoundException: ");    System.err.println(e.getMessage()); } try {     con = DriverManager.getConnection(url, "myLogin", "myPassword"); stmt = con.prepareStatement(query); while(....) {    .... // Code to read lower income limit into incomeLimit stmt.setInt(1,incomeLimit); ResultSet rs = stmt.executeQuery();     while (rs.next()) {        System.out.println(rs.getString(”NAME"));     }}     rs.close();     stmt.close();     con.close(); }catch(SQLException ex) {    System.err.print("SQLException: ");    System.err.println(ex.getMessage()); }}} Kjell Orsborn 8/12/09
  • 11. UU - IT - UDBL 11 Embedded SQL • Host language include embedded and specially marked SQL statements. • Embedded statements are extracted by preprocessor, translated and replaced by database calls, precompiled (prepared) and stored on server. • The preprocessed application is then compiled normally • Supports dynamic recompilation • Reduces optimization cost and can be somewhat simpler than CLI programming. Kjell Orsborn 8/12/09