0
Database Concepts© Leo Mark
DATABASE CONCEPTS                          Leo Mark                    College of Computing                        Georgia...
Course Contents                    Introduction                    Database Terminology                    Data Model Over...
INTRODUCTION             What a Database Is and Is Not             Models of Reality             Why use Models?          ...
What a Database Is and Is Not      The word database is commonly used to refer      to any of the following:          your...
Models of Reality                                DML                                      DATABASE SYSTEM             REAL...
Why Use Models?             Models can be useful when we want to             examine or manage part of the real world     ...
A Map Is a Model of RealityDatabase Concepts© Leo Mark
A Message to Map Makers             A model is a means of communication             Users of a model must have a certain a...
Use a DBMS when                    Do not use a   this is important                 DBMS when      persistent storage of d...
Data Modeling                                             DATABASE SYSTEM              REALITY              • structures  ...
Process Modeling                                                  DATABASE SYSTEM              REALITY          process mo...
Database Design        The purpose of database design is to create a        database which                    is a model o...
Abstraction       It is very important that the language used for       data representation supports abstraction        We...
Classification         In a classification we form a concept in a way         which allows us to decide whether or not a  ...
Aggregation      In an aggregation we form a concept from existing      concepts. The phenomena that are members of      t...
Generalization     In a generalization we form a new concept by     emphasizing common aspects of existing concepts,     l...
Generalization (cont.)       Subclasses may overlap                            CUSTOMER                                   ...
Relationships Between Abstractions                          aggregation                        generalization             ...
DATABASE TERMINOLOGY             Data Models             Keys and Identifiers             Integrity and Consistency       ...
Data Model          A data model consists of notations for expressing:                        data structures             ...
Data Model - Data Structures     All data models have notation for defining:                        attribute types       ...
Data Model - Constraints     Constraints express rules that cannot be expressed by the     data structures alone:apply to ...
Data Model - Operations     Operations support change and retrieval of data:          insert FLIGHT-SCHEDULE(97, delta, tu...
Data Model - Operations from Programs                                    FLIGHT-SCHEDULE   declare C cursor for           ...
Keys and Identifiers     Keys (or identifiers) are uniqueness constraints       A key on FLIGHT# in FLIGHT-SCHEDULE will f...
Integrity and Consistency         Integrity: does the model reflect reality well?         Consistency: is the model withou...
Triggers and Stored Procedures          Triggers can be defined to enforce constraints on a          database, e.g.,      ...
Null Values             CUSTOMER             CUSTOMER#        NAME        MAIDEN NAME   DRAFT STATUS             123-45-67...
Normalization  FLIGHT-SCHEDULE                                          FLIGHT-WEEKDAY  FLIGHT#           AIRLINE     WEEK...
Surrogates - Things and Names                    reality             name             custom#          customer           ...
DATA MODEL OVERVIEW                        ER-Model                        Hierarchical Model                        Netwo...
ER-Model                       Data Structures                       Integrity Constraints                       Operation...
ER-Model - Data Structures                     entity type                                       composite                ...
ER-Model - Integrity Constraints        E1        1                n                        A                            R...
ER Model - Example                                                 visa                                                   ...
ER-Model - Operations             Several navigational query languages have             been proposed             A closed...
Hierarchical Model                       Data Structures                       Integrity Constraints                      ...
Hierarchical Model - Data Structures                           flight-sched                            flight#            ...
Hierarchical Model - Data Structures                 - virtual records customer                                flight-sche...
flight-sched                                                                Hierarchical Model                      flight...
Network Model                        Data Structures                        Integrity Constraints                        O...
Network Model - Data Structures                Type diagram                     Occurrence diagram            Bachman Diag...
Network Model - Integrity                        Constraints                                      flight-schedule         ...
Network Model - Operations             The operations in the Network Model are             generic, navigational, and proc...
Network Model - Operations          navigation is cumbersome; tuple-at-a-time          many different currency indicators ...
Inverted Model - ADABAS                         Data Structures                         Integrity Constraints             ...
Relational Model                       Data Structures                       Integrity Constraints                       O...
Relational Model - Data Structures                                       domains                                       att...
Relational Model - Integrity                           Constraints                           Keys                         ...
Relational Model - Operations             Powerful set-oriented query languages             Relational Algebra: procedural...
Relational Model - Operations           tuple calculus example (SQL)            select flight#, date            from reser...
Object-Oriented Model(s)       based on the object-oriented paradigm,       e.g., Simula, Smalltalk, C++, Java       area ...
Object-Oriented Paradigm               object class               object attributes, primitive types, values              ...
Object-Oriented Model - Structures                                                                     O2-like syntax clas...
class flight-instance {      type tuple (flight-date: tuple ( year: integer, month: integer, day: integer);               ...
Object-Oriented Model - Updates class customer {                                                  O2-like syntax      type...
Object-Oriented Model - Queries                                                         O2-like syntax“Find the customer#’...
DATABASE ARCHITECTURE             ANSI/SPARC 3-Level DB Architecture             Metadata - What is it? Why is it importan...
ANSI/SPARC 3-Level DB        Architecture - separating concerns                                                       DML ...
ANSI/SPARC 3-Level DB        Architecture - separating concerns                                       schema              ...
ANSI/SPARC 3-Level DB Architecture                    external                     external    external                   ...
Conceptual Schema          Describes all conceptually relevant, general,          time-invariant structural aspects of the...
External Schema          Describes parts of the information in the          conceptual schema in a form convenient to a   ...
Internal Schema         Describes how the information described in the         conceptual schema is physically represented...
Physical Data Independence                    external                     external    external                           ...
Logical Data Independence                    external                     external    external                            ...
Schema Compiler     The schema compiler compiles           metadata     schemata and stores them in the     metadatabase  ...
Query Transformer    Uses metadata to transform a                    metadata    query at the external schema    level to ...
ANSI/SPARC DBMS Framework                                                        enterprise                               ...
Metadata - What is it?             System metadata:               Business metadata:              –     Where data came fr...
ISO-IRDS - Why?             Are metadata different from data?             Are metadata and data stored separately?        ...
ISO-IRDS Architecture      DL                      metaschema      metaschema; describes all schemata                     ...
ISO-IRDS - example                     metaschema       relations                                       rel-name    att-na...
DATABASE MANAGEMENT                     SYSTEM ARCHITECTURE             Teleprocessing Database             File-Sharing D...
Teleprocessing Database                          dumb             dumb             dumb                        terminal   ...
Teleprocessing Database -                          characteristics          Dumb terminals          APs, DBMS, and DB resi...
File-Sharing Database                     AP1           AP2           AP3                           DBMS                  ...
File-Sharing Database -                   characteristics             APs and DBMS on client micros             File-Serve...
Client-Server Database - Basic                    AP1           AP2           AP3                                         ...
Client-Server Database - Basic -                     characteristics             APs on client micros             Database...
Client-Server Database - w/Caching                    AP1           AP2           AP3                                     ...
Client-Server Database -                    w/Caching - characteristics             DBMS on server and clients            ...
Distributed Database                          AP1          AP2                  AP3                                       ...
Distributed Database -                        characteristics       APs and DDBMS on multiple micros or mainframes       O...
Distributed Database - Alternatives                                                                        increasing cost...
Federated Database                            AP1          AP2                   AP3                                      ...
Federated Database -                       characteristics             Each federate has a set of APs, a DDBMS,           ...
Multi-Database                            AP1          AP2                     AP3                                        ...
Multi-Database - characteristics             A multi-database is a distributed database             without a shared schem...
Parallel Databases             A database in which a single query may be             executed by multiple processors worki...
Parallel Databases - Shared Memory                                processors share memory via               P             ...
Parallel Databases - Shared Disk                        processors share disk via     M         P                        i...
Parallel Databases - Shared Nothing               P                    scales better than shared memory     M             ...
RAID -     redundant array of inexpensive disks           disk striping improves performance via parallelism           (as...
DATABASE CAPABILITIES                         Data Storage                         Queries                         Optimiz...
Data Storage                    Disk management                    File management                    Buffer management   ...
Queries       SQL queries are composed from the following:             Selection                  Set operations          ...
Query Optimization   select flight#, date                    reserv   from reserv R, cust C                    flight# dat...
Query Optimization                      Database statistics                      Query statistics                      Ind...
Indexing        Why Bother?         Disk access time: 0.01-0.03 sec         Memory access time: 0.000001-0.000003 sec     ...
Indexing (cont.)             Clustering vs. non-clustering             Primary and secondary indices             I/O cost ...
Concurrency Control         flight-inst                         reserv          flight#      date   #avail-seats   flight#...
Concurrency Control (cont.)  ACID Transactions:   An ACID transaction is a sequence of database   operations that has the ...
Concurrency Control (cont.)       Isolation        – Although multiple transactions execute concurrently, i.e.          in...
Concurrency Control (cont.)      Serializability is a good definition of correctness      A variety of concurrency control...
Recovery          reserv                                      flight-inst           flight#   date     customer#          ...
Recovery (cont.)              Storage types:                    Volatile: main memory                    Nonvolatile: disk...
Recovery (cont.)     Deferred update (NO-UNDO/REDO):           – don’t change database until ready to commit           – w...
Security        DAC: Discretionary Access Control         is used to grant/revoke privileges to users,         including a...
PEOPLE THAT WORK WITH                         DATABASES                        System Analysts                        Data...
System Analysts               communicate with each prospective database               user group in order to understand i...
Database Designers               choose appropriate structures to represent               the information specified by the...
Application Developers             implement the database design             implement the application programs to meet   ...
Database Administrators             Manage the database structure              –     participate in database and applicati...
Database Administrators (cont.)             Manage data activity              – establish database standards consistent wi...
Database Administrators (cont.)             Manage the database management system             – generate database applicat...
End Users             Parametric end users constantly query and             update the database. They use canned          ...
THE DATABASE MARKET             Prerelational vs. Relational             Database Vendors             Relational Database ...
Prerelational vs. Relational                  billion $            14                              p e ea i n l           ...
Database Vendors                                                           Other ($2,272M)                              In...
Relational Database Products                    We compare the following products:                     ORACLE 7 Version 7....
Relational Database Products   COMPARIS ON                                    CRITERIA                                    ...
Relational Database Products   COMPARIS ON          MICROS OFT S QL   IBM DB2 2.1.1          CA-                          ...
Relational Database Products                                  COMPARIS ON         ORACLE7             S YBAS E S QL       ...
Relational Database Products   COMPARISON          MICROSOFT S QL       IBM DB22.1.1         CA-                          ...
Relational Database Products   COMPARIS ON                                    CRITERIA                                    ...
Relational Database Products   COMPARIS ON                                    CRITERIA                                    ...
Databaseconcepts
Databaseconcepts
Databaseconcepts
Databaseconcepts
Databaseconcepts
Databaseconcepts
Databaseconcepts
Upcoming SlideShare
Loading in...5
×

Databaseconcepts

398

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
398
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Databaseconcepts"

  1. 1. Database Concepts© Leo Mark
  2. 2. DATABASE CONCEPTS Leo Mark College of Computing Georgia Tech (January 1999)Database Concepts© Leo Mark
  3. 3. Course Contents Introduction Database Terminology Data Model Overview Database Architecture Database Management System Architecture Database Capabilities People That Work With Databases The Database Market Emerging Database Technologies What You Will Be Able To Learn More AboutDatabase Concepts© Leo Mark
  4. 4. INTRODUCTION What a Database Is and Is Not Models of Reality Why use Models? A Map Is a Model of Reality A Message to Map Makers When to Use a DBMS? Data Modeling Process Modeling Database Design AbstractionDatabase Concepts© Leo Mark
  5. 5. What a Database Is and Is Not The word database is commonly used to refer to any of the following: your personal address book in a Word document a collection of Word documents a collection of Excel Spreadsheets a very large flat file on which you run some statistical analysis functions data collected, maintained, and used in airline reservation data used to support the launch of a space shuttleDatabase Concepts© Leo Mark
  6. 6. Models of Reality DML DATABASE SYSTEM REALITY • structures DATABASE • processes DDL A database is a model of structures of reality The use of a database reflect processes of reality A database system is a software system which supports the definition and use of a database DDL: Data Definition Language DML: Data Manipulation LanguageDatabase Concepts© Leo Mark
  7. 7. Why Use Models? Models can be useful when we want to examine or manage part of the real world The costs of using a model are often considerably lower than the costs of using or experimenting with the real world itself Examples: – airplane simulator – nuclear power plant simulator – flood warning system – model of US economy – model of a heat reservoir – mapDatabase Concepts© Leo Mark
  8. 8. A Map Is a Model of RealityDatabase Concepts© Leo Mark
  9. 9. A Message to Map Makers A model is a means of communication Users of a model must have a certain amount of knowledge in common A model on emphasized selected aspects A model is described in some language A model can be erroneous A message to map makers: “Highways are not painted red, rivers don’t have county lines running down the middle, and you can’t see contour lines on a mountain” [Kent 78]Database Concepts© Leo Mark
  10. 10. Use a DBMS when Do not use a this is important DBMS when persistent storage of data the initial investment in centralized control of data hardware, software, and control of redundancy training is too high control of consistency and the generality a DBMS integrity provides is not needed the overhead for security, multiple user support concurrency control, and sharing of data recovery is too high data documentation data and applications are data independence simple and stable control of access and real-time requirements security cannot be met by it backup and recovery multiple user access is notDatabase Concepts© Leo Mark needed
  11. 11. Data Modeling DATABASE SYSTEM REALITY • structures MODEL • processes data modeling The model represents a perception of structures of reality The data modeling process is to fix a perception of structures of reality and represent this perception In the data modeling process we select aspects and we abstractDatabase Concepts© Leo Mark
  12. 12. Process Modeling DATABASE SYSTEM REALITY process modeling • structures MODEL • processes The use of the model reflects processes of reality Processes may be represented by programs with embedded database queries and updates Processes may be represented by ad-hoc database queries and updates at run-time DML DML PROGDatabase Concepts© Leo Mark
  13. 13. Database Design The purpose of database design is to create a database which is a model of structures of reality supports queries and updates modeling processes of reality runs efficientlyDatabase Concepts© Leo Mark
  14. 14. Abstraction It is very important that the language used for data representation supports abstraction We will discuss three kinds of abstraction: Classification Aggregation GeneralizationDatabase Concepts© Leo Mark
  15. 15. Classification In a classification we form a concept in a way which allows us to decide whether or not a given phenomena is a member of the extension of the concept. CUSTOMER Tom Ed Nick ... Liz Joe LouiseDatabase Concepts© Leo Mark
  16. 16. Aggregation In an aggregation we form a concept from existing concepts. The phenomena that are members of the new concept’s extension are composed of phenomena from the extensions of the existing concepts AIRPLANE WING COCKPIT ENGINEDatabase Concepts© Leo Mark
  17. 17. Generalization In a generalization we form a new concept by emphasizing common aspects of existing concepts, leaving out special aspects CUSTOMER BUSINESS ECONOMY 1 CLASS ST CLASS CLASSDatabase Concepts© Leo Mark
  18. 18. Generalization (cont.) Subclasses may overlap CUSTOMER BUSINESS 1 CLASS ST CLASS Subclasses may have multiple superclasses MOTORIZED AIRBORNE VEHICLES VEHICLES TRUCKS HELICOPTERS GLIDERSDatabase Concepts© Leo Mark
  19. 19. Relationships Between Abstractions aggregation generalization T T T intension classification extension O O O Abstraction Concretization classification exemplification aggregation decomposition generalization specializationDatabase Concepts© Leo Mark
  20. 20. DATABASE TERMINOLOGY Data Models Keys and Identifiers Integrity and Consistency Triggers and Stored Procedures Null Values Normalization Surrogates - Things and NamesDatabase Concepts© Leo Mark
  21. 21. Data Model A data model consists of notations for expressing: data structures integrity constraints operationsDatabase Concepts© Leo Mark
  22. 22. Data Model - Data Structures All data models have notation for defining: attribute types entity types relationship types FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 lax 242 usair mo 231Database Concepts© Leo Mark
  23. 23. Data Model - Constraints Constraints express rules that cannot be expressed by the data structures alone:apply to database state Static constraints Dynamic constraints apply to change of database state E.g., “All FLIGHT-SCHEDULE entities must have precisely one DEPT-AIRPORT relationship FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 lax 242 usair mo 231 242 bosDatabase Concepts© Leo Mark
  24. 24. Data Model - Operations Operations support change and retrieval of data: insert FLIGHT-SCHEDULE(97, delta, tu, 258); insert DEPT-AIRPORT(97, atl); select FLIGHT#, WEEKDAY from FLIGHT-SCHEDULE where AIRLINE=‘delta’; FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 lax 242 usair mo 231 242 bosDatabase Concepts 97 delta tu 258 97 atl© Leo Mark
  25. 25. Data Model - Operations from Programs FLIGHT-SCHEDULE declare C cursor for FLIGHT# AIRLINE WEEKDAY PRICE select FLIGHT#, WEEKDAY 101 delta mo 156 from FLIGHT-SCHEDULE 545 american we 110 where AIRLINE=‘delta’; 912 scandinavian fr 450 242 usair mo 231 open C; 97 delta tu 258 repeat fetch C into :FLIGHT#, :WEEKDAY; do your thing; until done; close C;Database Concepts© Leo Mark
  26. 26. Keys and Identifiers Keys (or identifiers) are uniqueness constraints A key on FLIGHT# in FLIGHT-SCHEDULE will force all FLIGHT#’s to be unique in FLIGHT-SCHEDULE Consider the following keys on DEPT-AIRPORT: FLIGHT# AIRPORT-CODE FLIGHT# AIRPORT-CODE FLIGHT# AIRPORT-CODE FLIGHT# AIRPORT-CODE FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 lax 242 usair mo 231 242 bosDatabase Concepts© Leo Mark
  27. 27. Integrity and Consistency Integrity: does the model reflect reality well? Consistency: is the model without internal conflicts? a FLIGHT# in FLIGHT-SCHEDULE cannot be null because it models the existence of an entity in the real world a FLIGHT# in DEPT-AIRPORT must exist in FLIGHT-SCHEDULE because it doesn’t make sense for a non-existing FLIGHT- SCHEDULE entity to have a DEPT-AIRPORT FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 laxDatabase Concepts 242 usair mo 231 242 bos© Leo Mark
  28. 28. Triggers and Stored Procedures Triggers can be defined to enforce constraints on a database, e.g., DEFINE TRIGGER DELETE-FLIGHT-SCHEDULE ON DELETE FROM FLIGHT-SCHEDULE WHERE FLIGHT#=‘X’ ACTION DELETE FROM DEPT-AIRPORT WHERE FLIGHT#=‘X’; FLIGHT-SCHEDULE DEPT-AIRPORT FLIGHT# AIRLINE WEEKDAY PRICE FLIGHT# AIRPORT-CODE 101 delta mo 156 101 atl 545 american we 110 912 cph 912 scandinavian fr 450 545 lax 242 usair mo 231 242 bosDatabase Concepts© Leo Mark
  29. 29. Null Values CUSTOMER CUSTOMER# NAME MAIDEN NAME DRAFT STATUS 123-45-6789 Lisa Smith Lisa Jones inapplicable 234-56-7890 George Foreman inapplicable drafted 345-67-8901 unknown Mary Blake inapplicable Null-value unknown reflects that the attribute does apply, but the value is currently unknown. That’s ok! Null-value inapplicable indicates that the attribute does not apply. That’s bad! Null-value inapplicable results from the direct use of “catch all forms” in database design. “Catch all forms” are ok in reality, but detrimental in database design.Database Concepts© Leo Mark
  30. 30. Normalization FLIGHT-SCHEDULE FLIGHT-WEEKDAY FLIGHT# AIRLINE WEEKDAYS PRICE FLIGHT# WEEKDAY un 101 n orm delta mo,fr 156 101 mo ali 545 zed american mo,we,fr 110 545 mo 912 scandinavian fr 450 912 fr 101 fr FLIGHT-SCHEDULE 545 we 545 fr FLIGHT# AIRLINE WEEKDAY PRICE ju st 101 delta mo 156 rig FLIGHT-SCHEDULE ht 545 american mo 110 ! FLIGHT# AIRLINE PRICE 912 scandinavian fr red 450 un 101 delta 156 101 delta fr da 156 nt 545 american 110 545 american we 110 912 scandinavian 450 545 american fr 110Database Concepts© Leo Mark
  31. 31. Surrogates - Things and Names reality name custom# customer custom# name addr customer addr name-based representation reality name custom# customer customer custom# name addr customer addr surrogate-based representation name-based: a thing is what we know about it surrogate-based: “Das ding an sich” [Kant] surrogates are system-generated, unique, internal identifiersDatabase Concepts© Leo Mark
  32. 32. DATA MODEL OVERVIEW ER-Model Hierarchical Model Network Model Inverted Model - ADABAS Relational Model Object-Oriented Model(s)Database Concepts© Leo Mark
  33. 33. ER-Model Data Structures Integrity Constraints Operations The ER-Model is extremely successful as a database design model Translation algorithms to many data models Commercial database design tools, e.g., ERwin No generally accepted query language No database system is based on the modelDatabase Concepts© Leo Mark
  34. 34. ER-Model - Data Structures entity type composite attribute relationship type attribute subset relationship type multivalued attribute derivedDatabase Concepts attribute© Leo Mark
  35. 35. ER-Model - Integrity Constraints E1 1 n A R E2 cardinality: 1:n for E1:E2 in R key attribute (min,max) E1 E R E2 (min,max) participation of E2 in R E1 E2 E3 E1 R E2 d disjoint x exclusion total participation of E2 in R p partition E1 R E2Database Concepts type weak entity E2; identifying© Leo Mark
  36. 36. ER Model - Example visa required dept domestic international time flight flight airport airport dept name code p airport weekdays 1 n airport flight airport addr schedule arriv 1 n airport 1 zip flight# street city arriv time instance of customer# date n customer reserva- flight n n customer instance name tion seat#Database Concepts© Leo Mark
  37. 37. ER-Model - Operations Several navigational query languages have been proposed A closed query language as powerful as relational languages has not been developed None of the proposed query languages has been generally acceptedDatabase Concepts© Leo Mark
  38. 38. Hierarchical Model Data Structures Integrity Constraints Operations Commercial systems include IBM’s IMS, MRI’s System-2000 (now sold by SAS), and CDC’s MARS IVDatabase Concepts© Leo Mark
  39. 39. Hierarchical Model - Data Structures flight-sched flight# flight-inst dept-airp arriv-airp date airport-code airport-code customer customer# customer name record types: flight-schedule, flight-instance, etc. field types: flight#, date, customer#, etc. parent-child relationship types (1:n only!!): (flight-sched,flight-inst), (flight-inst,customer) one record type is the root, all other record types is a child of one parent record type only substantial duplication of customer instances asymmetrical model of n:m relationship typesDatabase Concepts© Leo Mark
  40. 40. Hierarchical Model - Data Structures - virtual records customer flight-sched customer# customer name flight# P flight-inst dept-airp arriv-airp date airport-code airport-code customer- pointer duplication of customer instances avoided still asymmetrical model of n:m relationship typesDatabase Concepts© Leo Mark
  41. 41. flight-sched Hierarchical Model flight# - Operations flight-inst dept-airp arriv-airp date airport-code airport-codecustomer customer# customer name GET UNIQUE flight-sched (flight#=‘912’) [search flight-sched; get first such flight-sched] GET UNIQUE flight-sched [for each flight-sched flight-inst (date=‘102298’) for each flight-inst with date=102298 customer (name=‘Jensen’) for each customer with name=Jensen, get the first one] GET UNIQUE flight-sched [for each flight-sched flight-inst (date=‘102298’) for each flight-inst with date=102298, get the first GET NEXT flight-inst get the next flight-inst, whatever the date]Database Concepts© Leo Mark
  42. 42. Network Model Data Structures Integrity Constraints Operations Based on the CODASYL-DBTG 1971 report Commercial systems include, CA-IDMS and DMS-1100Database Concepts© Leo Mark
  43. 43. Network Model - Data Structures Type diagram Occurrence diagram Bachman Diagram The Spaghetti Model flight-schedule flight# F1 F2 FR reservation R1 R2 R3 R4 R5 R6 flight# date customer# C1 C4 customer CR customer# customer name owner record types: flight-schedule, customer member record type: reservations DBTG-set types: FR, CR n-m relationships cannot be modeled directly recursive relationships cannot be modeled directlyDatabase Concepts© Leo Mark
  44. 44. Network Model - Integrity Constraints flight-schedule keys flight# reservation checks flight# date customer# price check is price>100 flight-schedule set retention options: flight# – fixed FR – mandatory reservation – optional flight# date customer# set insertion options: customer CR – automatic customer# customer name – manualDatabase Concepts© Leo Mark FR and CR are fixed and automatic
  45. 45. Network Model - Operations The operations in the Network Model are generic, navigational, and procedural query: currency indicators: (1) find flight-schedule where flight#=F2 (F2) (2) find first reservation of FR (R4) (3) find next reservation of FR (R5) F1 F2 (4) find owner of CR FR (C4) R1 R2 R3 R4 R5 R6 C1 CR C4Database Concepts© Leo Mark
  46. 46. Network Model - Operations navigation is cumbersome; tuple-at-a-time many different currency indicators multiple copies of currency indicators may be needed if the same path is traveled twice external schemata are only sub-schemataDatabase Concepts© Leo Mark
  47. 47. Inverted Model - ADABAS Data Structures Integrity Constraints OperationsDatabase Concepts© Leo Mark
  48. 48. Relational Model Data Structures Integrity Constraints Operations Commercial systems include: ORACLE, DB2, SYBASE, INFORMIX, INGRES, SQL Server Dominates the database market on all platformsDatabase Concepts© Leo Mark
  49. 49. Relational Model - Data Structures domains attributes relations relation name attribute names flight-schedule flight#: airline: weekday: price: integer char(20) char(2) dec(6,2) domain namesDatabase Concepts© Leo Mark
  50. 50. Relational Model - Integrity Constraints Keys Primary Keys Entity Integrity Referential Integrity flight-schedule customer flight# customer# customer name p p reservationDatabase Concepts flight# date customer#© Leo Mark
  51. 51. Relational Model - Operations Powerful set-oriented query languages Relational Algebra: procedural; describes how to compute a query; operators like JOIN, SELECT, PROJECT Relational Calculus: declarative; describes the desired result, e.g. SQL, QBE insert, delete, and update capabilitiesDatabase Concepts© Leo Mark
  52. 52. Relational Model - Operations tuple calculus example (SQL) select flight#, date from reservation R, customer C where R.customer#=C.customer# and customer-name=‘LEO’; algebra example (ISBL) ((reservation join customer) where customer- name=‘LEO’) [flight#, date]; domain calculus example (QBE) reservation customer flight# date customer# customer# customer-name .P .P _c _c LEODatabase Concepts© Leo Mark
  53. 53. Object-Oriented Model(s) based on the object-oriented paradigm, e.g., Simula, Smalltalk, C++, Java area is in a state of flux object-oriented model has object-oriented repository model; adds persistence and database capabilities; (see ODMG-93, ODL, OQL) object-oriented commercial systems include GemStone, Ontos, Orion-2, Statice, Versant, O2 object-relational model has relational repository model; adds object-oriented features; (see SQL3) object-relational commercial systems include Starburst, POSTGRESDatabase Concepts© Leo Mark
  54. 54. Object-Oriented Paradigm object class object attributes, primitive types, values object interface, methods; body, implementations messages; invoke methods; give method name and parameters; return a value encapsulation visible and hidden attributes and methods object instance; object constructor & destructor object identifier, immutable complex objects; multimedia objects; extensible type system subclasses; inheritance; multiple inheritance operator overloading references represent relationships transient & persistent objectsDatabase Concepts© Leo Mark
  55. 55. Object-Oriented Model - Structures O2-like syntax class flight-schedule { type tuple (flight#: integer, weekdays: set ( weekday: enumeration {mo,tu,we,th,fr,sa,su}) dept-airport: airport, arriv-airport: airport) method reschedule(new-dept: airport, new-arriv: airport)} class international-flight inherit flight-schedule { type tuple (visa-required:string) method change-visa-requirement(v: string): boolean} /* the reschedule method is inherited by international-flight; */ /* when reschedule is invoked in international-flight it may */ /* also invoke change-visa-requirement */Database Concepts© Leo Mark
  56. 56. class flight-instance { type tuple (flight-date: tuple ( year: integer, month: integer, day: integer); instance-of: flight-schedule, passengers: set (customer) inv customer::reservations) method add-passenger(new-passenger:customer):boolean, /*adds to passengers; invokes customer.make-reservation */ remove-passenger(passenger: customer):boolean} /*removes from passengers; invokes customer.cancel-reservation*/ class customer { type tuple (customer#: integer, customer-name: tuple ( fname: string, lname: string) reservations: set (flight-instance) inv flight-instance::passengers) method make-reservation(new-reservation: flight-instance): boolean, cancel-reservation(reservation: flight-instance): boolean}Database Concepts© Leo Mark
  57. 57. Object-Oriented Model - Updates class customer { O2-like syntax type tuple (customer#: integer, customer-name: tuple ( fname: string, lname: string) reservations: set (flight-instance) inv flight-instance::passengers) main () { transaction::begin(); all-customers: set( customer); /*makes persistent root to hold all customers */ customer c= new customer; /*creates new customer object */ c= tuple (customer#: “111223333”, customer-name: tuple( fname: “Leo”, lname: “Mark”)); all-customers += set( c); /*c becomes persistent by attaching to root */ transaction::commit();}Database Concepts© Leo Mark
  58. 58. Object-Oriented Model - Queries O2-like syntax“Find the customer#’s of all customers with first name Leo”select tuple (c#: c.customer#)from c in customerwhere c.customer-name.fname = “Leo”;“Find passenger lists, each with a flight# and a list of customer names, forflights out of Atlanta on October 22, 1998”select tuple(flight#: f.instance-of.flight#, passengers: select( tuple( c.customer#, c.customer-name.lname)))from f in flight-instance, c in f.passengerswhere f.flight-date=(1998, 10, 22)and f.instance-of.dept-airport.airport-code=“Atlanta”;Database Concepts© Leo Mark
  59. 59. DATABASE ARCHITECTURE ANSI/SPARC 3-Level DB Architecture Metadata - What is it? Why is it important? ISO Information Resource Dictionary System (ISO-IRDS)Database Concepts© Leo Mark
  60. 60. ANSI/SPARC 3-Level DB Architecture - separating concerns DML database system database system DDL database schema schema data data a database is divided into schema and data the schema describes the intension (types) the data describes the extension (data) Why? Effective! Efficient!Database Concepts© Leo Mark
  61. 61. ANSI/SPARC 3-Level DB Architecture - separating concerns schema schema data data schema schema internal schema internal schema data data external schema external schema conceptual schema conceptual schema internal schema internal schema data dataDatabase Concepts© Leo Mark
  62. 62. ANSI/SPARC 3-Level DB Architecture external external external external external external schema11 schema schema22 schema schema33 schema conceptual conceptual schema schema • external schema: internal internal use of data schema schema • conceptual schema: meaning of data • internal schema: database database storage of dataDatabase Concepts© Leo Mark
  63. 63. Conceptual Schema Describes all conceptually relevant, general, time-invariant structural aspects of the universe of discourse Excludes aspects of data representation and physical organization, and access CUSTOMER NAME ADDR SEX AGE An object-oriented conceptual schema would also describe all process aspectsDatabase Concepts© Leo Mark
  64. 64. External Schema Describes parts of the information in the conceptual schema in a form convenient to a particular user group’s view Is derived from the conceptual schema MALE-TEEN-CUSTOMER NAME ADDR TEEN-CUSTOMER(X, Y) = CUSTOMER(X, Y, S, A) WHERE SEX=M AND 12<A<20; CUSTOMER NAME ADDR SEX AGEDatabase Concepts© Leo Mark
  65. 65. Internal Schema Describes how the information described in the conceptual schema is physically represented to provide the overall best performance CUSTOMER NAME ADDR SEX AGE CUSTOMER NAME ADDR SEX AGE B+-tree on index on AGE NAME NAME PTRDatabase Concepts© Leo Mark
  66. 66. Physical Data Independence external external external external external external schema11 schema schema22 schema schema33 schema conceptual conceptual schema schema internal internal Physical data independence schema schema is a measure of how much the internal schema can change without affecting the application programs database databaseDatabase Concepts© Leo Mark
  67. 67. Logical Data Independence external external external external external external schema11 schema schema22 schema schema33 schema conceptual conceptual schema schema internal internal Logical data independence schema schema is a measure of how much the conceptual schema can change without affecting the application programs database databaseDatabase Concepts© Leo Mark
  68. 68. Schema Compiler The schema compiler compiles metadata schemata and stores them in the metadatabase compiler schemata • Catalog • Data Dictionary • MetadatabaseDatabase Concepts© Leo Mark
  69. 69. Query Transformer Uses metadata to transform a metadata query at the external schema level to a query at the storage level DML query query transformer dataDatabase Concepts© Leo Mark
  70. 70. ANSI/SPARC DBMS Framework enterprise administrator 1 schema compiler 3 3 database conceptual application administrator schema system processor administrator 13 2 4 14 5 internal external schema schema processor metadata processorquery transformer 34 36 38 21 30 31 12 data storage internal conceptual user internal conceptual external transformer transformer transformerDatabase Concepts© Leo Mark
  71. 71. Metadata - What is it? System metadata: Business metadata: – Where data came from – What data are available – How data were changed – Where data are located – How data are stored – What the data mean – How data are mapped – How to access the data – Who owns data – Predefined reports – Who can access data – Predefined queries – Data usage history – How current the data are – Data usage statistics Metadata - Why is it important? System metadata are critical in a DBMS Business metadata are critical in a data warehouseDatabase Concepts© Leo Mark
  72. 72. ISO-IRDS - Why? Are metadata different from data? Are metadata and data stored separately? Are metadata and data described by different models? Is there a schema for metadata? A metaschema? Are metadata and data changed through different interfaces? Can a schema be changed on-line? How does a schema change affect data?Database Concepts© Leo Mark
  73. 73. ISO-IRDS Architecture DL metaschema metaschema; describes all schemata that can be defined in the data model data dictionary data dictionary schema; contains copy schema of metaschema; schema for format definitions; schema for data about application data data dictionary data dictionary data; schema data for application data; data about application data data raw formatted application dataDatabase Concepts© Leo Mark
  74. 74. ISO-IRDS - example metaschema relations rel-name att-name dom-name access-rights data dictionary user relation operation schema relations rel-name att-name dom-name data dictionary (u1, supplier, insert) (u2, supplier, delete) supplier s# sname location data (s1, smith, london) (s2, jones, boston)Database Concepts© Leo Mark
  75. 75. DATABASE MANAGEMENT SYSTEM ARCHITECTURE Teleprocessing Database File-Sharing Database Client-Server Database - Basic Client-Server Database - w/Caching Distributed Database Federated Database Multi-Database Parallel DatabasesDatabase Concepts© Leo Mark
  76. 76. Teleprocessing Database dumb dumb dumb terminal terminal terminal communication lines OSTP AP1 AP2 AP3 mainframe DBMS OSDB database DBDatabase Concepts© Leo Mark
  77. 77. Teleprocessing Database - characteristics Dumb terminals APs, DBMS, and DB reside on central computer Communication lines are typically phone lines Screen formatting transmitted via communication lines User interface character oriented and primitive Dumb terminals are gradually being replaced by microsDatabase Concepts© Leo Mark
  78. 78. File-Sharing Database AP1 AP2 AP3 DBMS DBMS micros OSNET OSNET LAN OSNET file server OSDB micro database DBDatabase Concepts© Leo Mark
  79. 79. File-Sharing Database - characteristics APs and DBMS on client micros File-Server on server micro Clients and file-server communicate via LAN Substantial traffic on LAN because large files (and indices) must be sent to DBMS on clients for processing Substantial lock contention for extended periods of time for the same reason Good for extensive query processing on downloaded snapshot data Bad for high-volume transaction processingDatabase Concepts© Leo Mark
  80. 80. Client-Server Database - Basic AP1 AP2 AP3 micros OSNET OSNET LAN OSNET micro(s) or DBMS mainframe OSDB database DBDatabase Concepts© Leo Mark
  81. 81. Client-Server Database - Basic - characteristics APs on client micros Database-server on micro or mainframe Multiple servers possible; no data replication Clients and database-server communicate via LAN Considerably less traffic on LAN than with file-server Considerably less lock contention than with file-serverDatabase Concepts© Leo Mark
  82. 82. Client-Server Database - w/Caching AP1 AP2 AP3 micros DBMS DBMS OSNET OSNET LAN DB DB OSNET micro(s) or DBMS mainframe OSDB database DBDatabase Concepts© Leo Mark
  83. 83. Client-Server Database - w/Caching - characteristics DBMS on server and clients Database-server is primary update site Downloaded queries are cached on clients Change logs are downloaded on demand Cached queries are updated incrementally Less traffic on LAN than with basic client- server database because only initial query result is downloaded followed by change logs Less lock contention than with basic client- server database for same reasonDatabase Concepts© Leo Mark
  84. 84. Distributed Database AP1 AP2 AP3 micros(s) or DDBMS DDBMS mainframes OSNET&DB OSNET&DB network external external external conceptual internal DB DB DBDatabase Concepts© Leo Mark
  85. 85. Distributed Database - characteristics APs and DDBMS on multiple micros or mainframes One distributed database Communication via LAN or WAN Horizontal and/or vertical data fragmentation Replicated or non-replicated fragment allocation Fragmentation and replication transparency Data replication improves query processing Data replication increases lock contention and slows down update transactionsDatabase Concepts© Leo Mark
  86. 86. Distributed Database - Alternatives increasing cost, complexity, difficulty of control, security risk increasing parallelism, independence, flexibility, availability A C partitioned non-replicated B D A C A C non-partitioned replicated B D B D A C C partitioned B D replicatedDatabase Concepts + -© Leo Mark
  87. 87. Federated Database AP1 AP2 AP3 micros(s) or DDBMS DDBMS mainframes OSNET&DB OSNET&DB network federation schema export export export schema1 schema2 schema3 conceptual1 conceptual2 conceptual3 internal1 internal2 internal3 DB DB DBDatabase Concepts© Leo Mark
  88. 88. Federated Database - characteristics Each federate has a set of APs, a DDBMS, and a DB Part of a federate’s database is exported, i.e., accessible to the federation The union of the exported databases constitutes the federated database Federates will respond to query and update requests from other federates Federates have more autonomy than with a traditional distributed databaseDatabase Concepts© Leo Mark
  89. 89. Multi-Database AP1 AP2 AP3 micros(s) or MULTI-DBMS MULTI-DBMS mainframes OSNET&DB OSNET&DB network, e.g WWW conceptual1 conceptual2 conceptual3 internal1 internal2 internal3 DB DB DBDatabase Concepts© Leo Mark
  90. 90. Multi-Database - characteristics A multi-database is a distributed database without a shared schema A multi-DBMS provides a language for accessing multiple databases from its APs A multi-DBMS accesses other databases via a network, like the www Participants in a multi-database may respond to query and update requests from other participants Participants in a multi-database have the highest possible level of autonomyDatabase Concepts© Leo Mark
  91. 91. Parallel Databases A database in which a single query may be executed by multiple processors working together in parallel There are three types of systems: – Shared memory – Shared disk – Shared nothingDatabase Concepts© Leo Mark
  92. 92. Parallel Databases - Shared Memory processors share memory via P bus M P extremely efficient processor communication via memory P writes bus becomes the bottleneck P not scalable beyond 32 or 64 processors P processor M memory diskDatabase Concepts© Leo Mark
  93. 93. Parallel Databases - Shared Disk processors share disk via M P interconnection network M P memory bus not a bottleneck fault tolerance wrt. processor M P or memory failure scales better than shared M P memory interconnection network to disk subsystem is a bottleneck used in ORACLE RdbDatabase Concepts© Leo Mark
  94. 94. Parallel Databases - Shared Nothing P scales better than shared memory M and shared disk main drawbacks: P M – higher processor communication cost – higher cost of non-local disk access M P used in the Teradata database machine M PDatabase Concepts© Leo Mark
  95. 95. RAID - redundant array of inexpensive disks disk striping improves performance via parallelism (assume 4 disks worth of data is stored) disk mirroring improves reliability via redundancy (assume 4 disks worth of data is stored) mirroring: via copy of data (c); via bit parity (p) c c c c pDatabase Concepts© Leo Mark
  96. 96. DATABASE CAPABILITIES Data Storage Queries Optimization Indexing Concurrency Control Recovery SecurityDatabase Concepts© Leo Mark
  97. 97. Data Storage Disk management File management Buffer management Garbage collection CompressionDatabase Concepts© Leo Mark
  98. 98. Queries SQL queries are composed from the following: Selection Set operations – Point – Cartesian Product – Range – Union – Conjunction – Intersection – Disjunction – Set Difference Join Other – Natural join – Duplicate elimination – Equi join – Sorting – Theta join – Built-in functions: count, – Outer join sum, avg, min, max Projection Recursive (not in SQL)Database Concepts© Leo Mark
  99. 99. Query Optimization select flight#, date reserv from reserv R, cust C flight# date cust# 10,000 reserv blocks where R.cust#=C.cust# customer 3,000 cust blocks and cust-name=‘LEO’; cust# cust-name 30 “Leo” blocks flight#, date flight#, date cost: 10,000x30 cust-name=Leo cust# cost: 10,000x3,000 cust-name=Leo cost: 3,000 reserv cust reserv custDatabase Concepts© Leo Mark
  100. 100. Query Optimization Database statistics Query statistics Index information Algebraic manipulation Join strategies – Nested loops – Sort-merge – Index-based – Hash-basedDatabase Concepts© Leo Mark
  101. 101. Indexing Why Bother? Disk access time: 0.01-0.03 sec Memory access time: 0.000001-0.000003 sec Databases are I/O bound Rate of improvement of (memory access time)/(disk access time) >>1 Things won’t get better anytime soon! Indexing helps reduce I/O !Database Concepts© Leo Mark
  102. 102. Indexing (cont.) Clustering vs. non-clustering Primary and secondary indices I/O cost for lookup: – Heap: N/2 – Sorted file: log2(N) – Single-level index: log2(n)+1 – Multi-level index; B+-tree: logfanout(n)+1 – Hashing: 2-3 View caching; incremental computationDatabase Concepts© Leo Mark
  103. 103. Concurrency Control flight-inst reserv flight# date #avail-seats flight# date customer# T1: T2: read(flight-inst(flight#,date) seats:=#avail-seats read(flight-inst(flight#,date) if seats>0 then { seats:=#avail-seats seats:=seats-1 if seats>0 then { seats:=seats-1 write(reserv(flight#,date,customer2)) write(flight-inst(flight#,date,seats))} write(reserv(flight#,date,customer1)) write(flight-inst(flight#,date,seats))} overbooking!Database Concepts© Leo Mark
  104. 104. Concurrency Control (cont.) ACID Transactions: An ACID transaction is a sequence of database operations that has the following properties: Atomicity – Either all operations are carries out, or none is – This property is the responsibility of the concurrency control and the recovery sub-systems Consistency – A transaction maps a correct database state to another correct state – This requires that the transaction is correct, which is the responsibility of the application programmerDatabase Concepts© Leo Mark
  105. 105. Concurrency Control (cont.) Isolation – Although multiple transactions execute concurrently, i.e. interleaved, not parallel, they appear to execute sequentially – This is the responsibility of the concurrency control sub- system Durability – The effect of a completed transaction is permanent – This is the responsibility of the recovery managerDatabase Concepts© Leo Mark
  106. 106. Concurrency Control (cont.) Serializability is a good definition of correctness A variety of concurrency control protocols exist – Two-phase (2PL) locking deadlock and livelock possible deadlock prevention: wait-die, wound-wait deadlock detection: rollback a transaction – Optimistic protocol: proceed optimistically; back up and repair if needed – Pessimistic protocol: do not proceed until knowing that no back up is neededDatabase Concepts© Leo Mark
  107. 107. Recovery reserv flight-inst flight# date customer# flight# date #avail-seats 102298 102398 change-reservation(DL212,102298,DL212,102398,C) 100 50 read(flight-inst(DL212,102298) 100 50 #avail-seats:=#avail-seats+1 100 50 update(flight-inst(DL212,102298,#avail-seats) 101 50 read(flight-inst(DL212,102398) 101 50 #avail-seats:=#avail-seats-1 101 50 update(flight-inst(DL212,102398,#avail-seats) 101 49 update(reserv(DL212,102298,C,DL212,102398,C) 101 49Database Concepts© Leo Mark
  108. 108. Recovery (cont.) Storage types: Volatile: main memory Nonvolatile: disk Errors: Logical error: transaction fails; e.g. bad input, overflow System error: transaction fails; e.g. deadlock System crash: power failure; main memory lost, disk survives Disk failure: head crash, sabotage, fire; disk lost What to do?Database Concepts© Leo Mark
  109. 109. Recovery (cont.) Deferred update (NO-UNDO/REDO): – don’t change database until ready to commit – write-ahead to log to disk – change the database Immediate update (UNDO/NO-REDO): – write-ahead to log on disk – update database anytime – commit not allowed until database is completely updated Immediate update (UNDO/REDO): – write-ahead to log on disk – update database anytime – commit allowed before database is completely updated Shadow paging (NO-UNDO/NO-REDO): – write-ahead to log in disk© Leo Mark – keep shadow page; update copy only; swap at commitDatabase Concepts
  110. 110. Security DAC: Discretionary Access Control is used to grant/revoke privileges to users, including access to files, records, fields (read, write, update mode) MAC: Mandatory Access Control is used to enforce multilevel security by classifying data and users into security levels and allowing users access to data at their own or lower levels onlyDatabase Concepts© Leo Mark
  111. 111. PEOPLE THAT WORK WITH DATABASES System Analysts Database Designers Application Developers Database Administrators End UsersDatabase Concepts© Leo Mark
  112. 112. System Analysts communicate with each prospective database user group in order to understand its – information needs – processing needs develop a specification of each user group’s information and processing needs develop a specification integrating the information and processing needs of the user groups document the specificationDatabase Concepts© Leo Mark
  113. 113. Database Designers choose appropriate structures to represent the information specified by the system analysts choose appropriate structures to store the information in a normalized manner in order to guarantee integrity and consistency of data choose appropriate structures to guarantee an efficient system document the database designDatabase Concepts© Leo Mark
  114. 114. Application Developers implement the database design implement the application programs to meet the program specifications test and debug the database implementation and the application programs document the database implementation and the application programsDatabase Concepts© Leo Mark
  115. 115. Database Administrators Manage the database structure – participate in database and application development – assist in requirement analysis – participate in database design and creation – develop procedures for integrity and quality of data – facilitate changes to database structure – seek communitywide solutions – assess impact on all users – provide configuration control – be prepared for problems after changes are made – maintain documentationDatabase Concepts© Leo Mark
  116. 116. Database Administrators (cont.) Manage data activity – establish database standards consistent with data administration standards – establish and maintain data dictionary – establish data proponencies – work with data proponents to develop data access and modification rights – develop, document, and train staff on backup and recovery procedures – publish and maintain data activity standards documentationDatabase Concepts© Leo Mark
  117. 117. Database Administrators (cont.) Manage the database management system – generate database application performance reports – investigate user performance complaints – assess need for changes in database structure or application design – modify database structure – evaluate and implement new DBMS features – tune the database Establish the database data dictionary – data names, formats, relationships – cross-references between data and application programs –Database Concepts (see metadata slide)© Leo Mark
  118. 118. End Users Parametric end users constantly query and update the database. They use canned transactions to support standard queries and updates. Casual end users occasional access the database, but may need different information each time. They use sophisticated query languages and browsers. Sophisticated end users have complex requirement and need different information each time. They are thoroughly familiar with the capabilities of the DBMS.Database Concepts© Leo Mark
  119. 119. THE DATABASE MARKET Prerelational vs. Relational Database Vendors Relational Database Products Relational Databases for PCs Object-Oriented Database CapabilitiesDatabase Concepts© Leo Mark
  120. 120. Prerelational vs. Relational billion $ 14 p e ea i n l r r l to a 12 r l t nl ea io a 10 8 6 4 2 0 1 9 9 4 1 9 9 5 1 9 9 6 1 9 9 7 1 9 9 8 1 9 9 9 Prerelational market revenue shrinking about 9%/year. Currently 1.8 billion/year Relational market revenue growing about 30%/year. Currently 11.5 billion/yearDatabase Concepts Object-Oriented© Leo Mark market revenue about 150 million/year
  121. 121. Database Vendors Other ($2,272M) Informix CA Oracle ($1,755M) Sybase IBM (IMS+DB2) ($1,460M) IBM Other Sybase ($664M) Oracle Informix (+Illustra) ($492M) CA-IDMS (+Ingress) ($447M) NEC ($211M) Fujitsu ($186M) Total: $7,847M Hitachi ($117M) Software AG (ADABAS) ($136M) Source: IDC, 1995Database Concepts© Leo Mark
  122. 122. Relational Database Products We compare the following products: ORACLE 7 Version 7.3 Sybase SQL Server 11 Informix OnLine 7.2 Microsoft SQL Server 6.5 IBM DB2 2.1.1 CA-OpenIngres 1.2Database Concepts© Leo Mark
  123. 123. Relational Database Products COMPARIS ON CRITERIA ORACLE7 VERS ION7.3 S YBAS E S QL S ERVER11 INFORMIX ONLINE7.1 Relational M odel Domains no no no Referential Integ. restrict, except restrict only restrict, except violation options cascading delete cascading delete Taylor referential no no no messages Referential no no no WHERE clause Updatable views yes yes yes w/check option Database Objects User-defined yes yes no data types BLOBs yes yes yes Additional image,video,text, binary,image,text, byte, data types messaging,spatial money,bit, text up to 2GB data types varbinary Table structure heap,clustered heap,clustered no choice Index structure B-tree,bitmap, B-tree B+-tree,clustered hash Tuning facilities table and index index pre-fetch, extents, table allocation I/O buffer cache, fragmentation by block size, expression or table partitioning round robinDatabase Concepts© Leo Mark
  124. 124. Relational Database Products COMPARIS ON MICROS OFT S QL IBM DB2 2.1.1 CA- CRITERIA S ERVER6.5 OPENINGRES 1.2 Relational M odel Domains no no no Ref. integrity restrict restrict,cascade, restrict only w/check option set null Taylor referential no no no messages Referential no no no WHERE clause Updatable views yes yes, including yes w/check option union vews Database objects User-defined yes yes yes data types BLOBs yes yes yes Additional large objects byte,longbyte,long data types varchar,spatial, varbyte, money Table structure no choice no choice B-tree,hash,heap, ISAM Index structure clustered clustered B-tree,hash,ISAM Tuning facilities fill factors, table & index table&index alloc. allocation allocation, cluster fill factors, ratio,cluster factor pre-allocationDatabase Concepts© Leo Mark
  125. 125. Relational Database Products COMPARIS ON ORACLE7 S YBAS E S QL INFORMIX CRITERIA VERSION7.3 S ERVER11 ONLINE7.2 Triggers Level row&set-based set-based row&set-based Timing before,after after before,after,each Nesting yes yes yes Stored procedures Language PL/SQL Transact-SQL SPL Nesting yes yes yes Cursors yes yes yes External calls RPC RPC system calls Events yes time-based no Queries Locking level table, row table, page db,table,page,row ANSI SQL comply entry level SQL92 entry level SQL92 entry level SQL92 Cursors forward forward forward,backward Outer join yes yes yes ANSI syntax no no no APIs ODBC DBLIB,CTLIB,ODBC ESQL,TP/XA,CLI, ODBCDatabase Concepts© Leo Mark
  126. 126. Relational Database Products COMPARISON MICROSOFT S QL IBM DB22.1.1 CA- CRITERIA DERVER6.5 OPENINGRES1.2 Triggers Level set-based set&row-based row-based Timing after before,after after Nesting yes yes yes Stored procedures Language Transact-SQL SQL, 3GL SQL-like Nesting yes yes yes Cursors yes yes no External calls system call yes no(db events) Events no user-def functions db event alerters Queries Locking level db,table, page,row db,table, page,row db,table,page ANSI SQL comply entry level SQL92 entry level SQL92 entry level SQL92 Cursors forward,backward forward forward ,relative,absolute Outer join yes yes yes ANSI syntax no no yes APIs ESQL,DBLIB,ODBC, ESQL,,ODBC ESQL,TP/XA,ODBC Dist mgt objectsDatabase Concepts© Leo Mark
  127. 127. Relational Database Products COMPARIS ON CRITERIA ORACLE7 S YBAS E S QL S ERVER11 INFORMIX ONLINE7.2 Database Admin Tools Oracle Enterp M gr Sybase SQL M gr SM I,DB/Cockpit, Performance Pack SQL M onitor OnPerf SNM P support yes yes no Security C2(trusted Oracle) C2 C2,B1online secur Partial backup & configurable configurable no recovery Internet Internet support OracleWebServer web.sql ESQL,4GLCGI, Interface Kit Connectivity, Distribution Gateways to other M VS source Adabas,AS/400, Oracle,Sy base, DBM Ss through EDA/SQL DB2,IDM S,IM S, IM S,DB2 (Adabas,IDM S,SQL Informix,Ingres, /DS,VSAM ), any ISAM ,SQL Server, APPC source, AS/ Oracle,Rdb,RM S, 400,DRDA,DB2,Tur seq.flies,SQL/DS, boimage,Sybase,R SybaseSQL Server, db,RM S,Informix,C Teradata,VSAM A-Ingres,SQL Server,Teradata Distributed DBs part of base prod OmniConnect Online server 2PC protocol yes yes yes,presumeabort Heterogeneous gateways DirectConnect no Op timization yes yes yes RPC yes yes noDatabase Concepts© Leo Mark
  128. 128. Relational Database Products COMPARIS ON CRITERIA MICROS OFT S QL S ERVER6.5 IBM DB@ 2.1.1 CA- OPENINGRES 1.2 Database Admin Tools Enterprise Mgr, DB Director,Perf IPM , VisualDBA, Perf M onitor M onitor, IM A Visual Explain SNM P support yes yes yes Security NT integrated three levels C2 Partial backup & per table yes per table recovery Internet Internet support Internet Info Serv DB2 WWW CA-OpenIngres/ (WindowsNT) Connection ICE Connectivity, Distribution Gateways to other no Oracle, Sybase, DB2, Datacom, DBM Ss Informix, M S SQL IM S, IDM S, VSAM , Server Oracle, Rdb, Albase, Informix, Oracle, Sybase Distributed DBs no DataJoiner CA-OpenIngres* 2PC protocol n/a yes yes,automatic Heterogeneous no DataJoiner through gateways Optimization no yes yes RPC yes no noDatabase Concepts© Leo Mark
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×