CB10:Thomas Connolly, Carolyn Begg. Database Systems

A Practical Approach to Design, Implementation, and Management. 5th edition. Addison-Wesley, 2010.

1.6 Advantages and Disadvantages of DBMSs

  • control of data redundancy
  • data consistency
  • more infos from the same data
  • sharing data
  • improved data integrity
  • improved security
  • enforcement of standards
  • economy of scale
  • balance of confictin requirements
  • improved data accessibility and responsiveness
  • increase productivity
  • improved maintenance through data independence
  • increase concurrency
  • improve backup and recovery

Disadvantages

  • Compexity
  • size
  • cost
  • additional hardware
  • cost of conversion
  • performance
  • greater impact of failure

2.1 Level Architecture

  • CODASYL 1971: two-levels: Schema und Subschemas (User views)
  • ANSI 1975: 3 Level: Conceptual, External (User) und Internal Level, zusammen mit einem SystemCatalog

2.4 die 10 Funktionen

(8 von Codd + 2 der Autoren)

  1. data storage, retrieval and update
  2. user accessible catalog (Metadata)
  3. Transaction support
  4. Concurrency control services
  5. Recovery
  6. Authorization
  7. Support for data communication
  8. Integrity services (für Daten und Operationen)
  9. Services to promote data independence
  10. Utility Services (import, export, monitor, statistics, reorg, garbage collection etc.)

DB Architectures an the Web

  • Two-Tier Client-Server Architecture: First=client, second=DB-Server
  • Three-Tier Client-Server Architecture: First=client, second=applicatin server=BusinessLogic, third=DB-Server
  • n-Tier Architecture: z.B. mit WebServer dazwischen

6 Types von Middleware (Hurwitz, 1998)

  • Asynchronous Remote Procedure Call (RPC): Request ohne sich um Antwort zu kümmern: effizient aber nicht zuverlässig
  • Synchronous RPC: Client ist blockiert bis Antwort vom Server kommt. Gibt viele Varianten davon:
    • JavaRMI= Java Remote Method Invocation ,
    • XML RPC
  • publish/suscribe
  • MOM = Message Oriented Middleware
  • ORB = Object Request Broker
  • SQL oriented data access

Transaction Processing Monitors

3.2 Web Services and SOA

SOA = Service Oriented Architectur, bauen auf

  • XML
  • SOAP Simple Object Access Protocol
  • WSDL Web Services Description Language
  • UDDI = Universal Discovery, Description and Integration: Registry für Services via WSDL

SOA Prinzipien:

  • loos coupling
  • reusability
  • contract
  • abstraction (was nicht im Kontrakt ist, ist private Implementierung)
  • composability
  • autonomy
  • stateless
  • discoverability

3.3 Distributed DBMSs

besteht aus

  • einer einzige logischen DB, für den User ist das distributed transparent
  • in Fragments aufgeteilt, die einem (local)DBMS auf einem Site gehören
  • Fragments können replicate sein

Data Warehousing

DataWarehouse eine konsolidierte, integriere View auf die FirmenDaten, aus verschiedenen operativen Systemen integriert. Erlauben verschiedenartige Queries für DecisionMaking. Daten mit folgenden Eigenschaften

  • Subject-oriented - nach den GeschäftsBegriffen organisiert (nicht nach Prozessen wie in operativen DBs)
  • Integrated: aus verschiedenen Quellen
  • Time-variant: nur zu bestimmten Zeitbereichen gültig
  • nonVolatile: Daten werden nicht mutiert sondern aus operativen quellen periodisch refresh'd

4. The Relational Model

Begriffe

  • Relation = Tabelle, logische Ebene
  • Attribute
  • Domain = Wertebereich von Attribute
  • Tuple = Row
  • Degree = Anzahl Attribute einer Relation
  • Cardinality = Anzwhal Rows einer Relation
  • Relational DB: eine Menge von Relationen mit verschiedenen Namen

Eigenschaften einer Relation = FirstNormalForm

  • hat Namen, unterschiedlichen von dem aller anderen Relationen
  • jedes Attribute hat einen separaten Name
  • jedes Attribute in einem Tupel enthält genau ein atomaren Wert aus seinem Domain
  • jedes Tupel is verschieden (keine Duplicates → Set)
  • die Sortierung der Attribute oder Tupel hat keine Bedeutung

Relation Keys

  • Superkey eine Menge von Attributen, das ein Tupel in einer Relation identifiziert
  • CandidateKey ein minimaler Superkey (kein Attribut Subset is Superkey)
  • PrimaryKey der ausgwählte CandidateKey
  • AlternateKeys, CandidateKeys die nicht als primary gewählt wurden
  • ForeignKey eine Relation enthält den PrimaryKey einer Relation (Home Relation)

4.3 Integrity Constraints

  • Null kein Wert, der Begriff null value ist also widersprüchlich und deprecated
  • EntityIntegrity kein Attribute des PrimaryKey ist Null
  • RefernetialInegrity: ForeignKey enthält einen PrimaryKey in der Home Relation oder alle seine Attribute sind null.
  • General Constraints: alle anderen

5. Relational Algebra and Relational Calculus

5.1 Relational Algebra

Operationen (Relation+ → Relation, natürlich mit duplicate Eliminierung)

  • σ = selection: Tupels aus einer Relation auswählen
  • π = Projection: Attribute aus einer Relation auswählen
  • ∪ = Set Union
  • - = Set difference
  • ∩ = Set Intersection
  • x = Cartesian Product
  • ρ = rename of attributes
  • und abgeleitete Operatoren
    • ThetaJoin: Prädikate nur linke Attr ? rechtes attribute mit =, <, >, ≤, ≥, ≠
    • EquiJoin = Theta join mit lauter =
    • NaturalJoin = EquiJoin auf allen gemeinsamen Attributen
    • OuterJoin LeftJoin, RightJoin. Left: L x R ∪ (L - π(L x R)) x (Null*) mit sovielen Nullen wie nötig
    • SemiJoin join und Projektion zurück auf erste Relation: also Selection in L, where not exists in R
    • ÷ Divison: Vorraussetzung Attribute L ⊆ Attribute R
      • Division sind Projektionen aus L, die es mit allen Kombination aus R gibt.
      • also L = (L ÷ R) x R ∪ Rest mit Rest minimal
  • Aggregate: Count, Sum, Avb, min, max über ganze Relation
  • Grouping: Gruppieren nach Attributen und aggregieren pro Gruppe
  • was offensichtlich fehlt (ausser einigen inkonsequenten Stellen) sind expressions (und Prädikate). Also Entweder
    • einen Expression Operator definieren, der einer Relation ein neues Attribute(Liste) berechnet aus den anderen Attributen zufügt, oder
    • in der Projektion (oder überall wo Attribute vorkommen) AttributeExpression erlauben

5.2 The Relational Calculus

  • adaptierte MengenAusdrücke, mit Relationen und Attributen als Universum, z.B. {A.name | Staff(A) ∧ A.salary > 100}
  • mit Quantoren ∃ und ∀
  • auch hier gibts nur Prädikate und keine Expressions ...

6/7/8 SQL

DML

  • all, any=some: ... where a > some(select x...)
  • union, intersect, except

DDL

  • TimeInterval Data kann mit variabel vielen Feldern definiert werden, z.B. INTERVAL hour TO second(4) (HH.MM.SS.ssss)
  • Check entweder auf Row oder auf ganzer Table (ISO) (frage auch in Db2?)
  • Create Domain ... as dataType check(..) (ISO, DB2?), erlaubt auch subQuery.
  • (ISO): Create Assertion ... CHECK ... Table unabhängige Constraints
  • foreign key
    • mit match full / partial (nulls in keys als wildCards)
    • mit on update clause
  • (ISO) alter table drop column
  • create view ... with cascaded, local check

Transaction

  • Set Transaction Read only / read write, isolation level...

SQLPSM SPL/PSM = SQL/Persistent Stored Modules ==> SQL zu voller Programmiersprache erweitert. Im Folgenden wird über Oracls PL/SQL gesprochen.

  • PLSQL = ("DECLARE" declaration*)? "BEGIN" statements* ("EXCEPTION") exceptionHandler*)? "END;"
  • assignment (statement oder mit select into), if, case, while, repeat, for
  • loop = "EXIT" label? "WHEN" condition
  • exceptionHandler = "DECLARE ("CONTINUE" | "EXIT" | "UNDO") "HANDLER FOR SQLSTATE (sqlState | conditionName | ...) action";"
  • man kann ein userDefined Condition deklarieren
  • "SIGNAL" | "RESIGNAL" sqlState: Condition (weiter)werfen
  • Select Statements nur für genau ein tupel, sonst
  • Cursor
    • Declare mit Parametern
    • Open
    • Fetch into deklarierte Variablen plus ein EXIT WHEN cursor%NOTFOUND (das geht offensichtlich nicht über Exceptions!)
    • Kann Cursor abfragen, ob er offen ist usw.
  • als stored procedures oder functions
  • package: eine Sammlung von Procedure, Functions, Variables und SQLStatements
    • mit öffentlicher specification
    • und privater Implementierung

9. QueryByExample

Entgegen dem Namen hat das nichts mit Examples zu tun, sondern ist das was MSAccess macht, mit seinem grafischen Tabellen verlinken, Kolonnen auswählen usw..

DB Analysis and Design

12/13. Entity-Relationship Modeling

  • Entity Type: eine Gruppe von Objekten mit gemeinsamen Eigenschafte
    • Strong ↔ Weak EntityType (existenziell unabhängig, bzw. abhängig)
  • Entity occurrence: ein einzelnes Objekt eines EntityTypes
  • Relationship Type: Gruppe von Verbindungen
  • Relationship Occurrence: eine einzelne Relationship zwischen EntityOccurrences
    • binäre Relationships werden durch VerbindungsLinie dargestellt, ein Pfeil kommt zur Beschriftung (normalerweise ein Verb)
    • tenary oder höhere Relationships werden mit einer Raute dargestellt
  • Attribute: eine property eines Entity oder Relationship Types
  • Attribute domain: erlaubter Wertebereich
    • simple ↔ composite
    • single-valued ↔ multi-valued
    • derived attribute (abgeleitet von anderen Attributen abgeleitet wird, möglicherweise von anderen EntityTypes)
  • Candidate, Primary und Composite Key wie im Relationalen Modell
  • Muliplicity: an jedem Ende einer Relationship wird angegeben, wieviele Entitäten dort sitzen können, wenn die anderen Enden festgehalten sind (mit 1 bzw. 0)
  • Problems
    • Fan Trap: Zusammensetzung von 1:n und n:1 Beziehungen, braucht nicht die intuitive Bedeutung zu haben
    • Chasm Trap: Relationship Types suggerieren Zusammensetzung, die existieren aber nicht für alle Relationship Occurrence

Enhanced ER Model

  • Specialization/Generalization von Entity und Relationship Typen
  • Aggregation: has-a bzw. is-part-of relationships
  • Composition: eine starke Form von Aggregation, LebensZyklus von Teil und Ganzem sind identisch

14. Normalization

  • insertion anomalies
    • ein und derselbe fact muss an mehreren Orten eingefügt werden
    • ein Fakt kann nicht registriert werden, weil er in einem Tupel mitläuft, dass nicht existiert (Abteilung ohne Mitarbeiter etc.)
  • deletion anomaly: wie oben: durch das Löschen des letzten Mitarbeiters, verschwindet die Abteilung
  • Functional Dependency: A → B wenn zwei Tupel auf der AttributMenge A übeinstimmen, dann auch auf B
  • full functional dependency: es gilt A → B aber für kein A' ⊂ A gilt A' → B
  • Determinant: linke Seite der full functional Dependency
  • transitive functional dependency C von A iff A → B und B → C

Normalformen NF:

  • 1. Normalform; keine repeating groups (siehe oben)
  • 2. Normalform: 1. and jedes non-primary-key Attribut is fully functional dependent von primary key
  • 3. Normalform: 2. and kein non-primary-key Attribut is transitive functional dependent von primary key
  • BCNF = Boyce-Codd Normal Form: jede Determinate ist ein Candidate key (d.h. jede nichtTrivale Dependency bestimmt das ganze Tupel)
  • Multi-Valued Dependency = eine Relation kann in einen nicht trivialen Join zerlegt werden
  • 4. und 5. NormalForm keine nicht trivialen Join Zerlegungen

mit nicht-triviale Join Zerlegung kann man wohl alle Normalformen zusammenfassen, aber das hilft im DB Design weniger, als Schritt für Schritt immer komplexere Abhängigkeiten zu entfernen.

16/17/18 Design

  • Conceptual: design an ER-Model
  • Logical design: translate ER-Model to relational
    1. derive relations: strong/weak entity types
    2. 1:n Beziehungen
    3. 1:1 Beziehungen
    4. Super/subclass
    5. n:n Beziehungen
    6. komplexe Beziehungen
    7. MulitiValued attributes
    8. document relations and foreign keys
    9. Normalisierung
    10. Validate relations against user transaction
    11. Check integrity constraints, Attribute domain,
    12. CheckReferentail Constraints
    13. merge model into global model
    14. Check for future growth
  • Physical design
    1. Base Relation (richtige Datentypen usw.)
    2. Constraints (not null, etc.)
    3. Derived data
    4. FileOrganization, Indexes
    5. Analyze transaction and map them to relations
    6. Mengengerüst, Transaktionsfrequenzen
    7. Views
    8. Security

19. Methodology - Monitoring and Tuning the Operational System

DeNormalisierung um weniger Joins zu machen

  • combining 1:1 Relationships
  • duplicating non-key Attributes (oder auch foreign keys) in 1:n relationships
  • duplicating attributes in n:n relationships: da die eh in n:1 und 1:n aufgeteilt wurden, können da auch Attribute kopiert werden
  • creating repeating groups
  • creating extractTables

Partitioning relations

  • horizontal: ganze Tupels auf verschiede Relationen verteilen
  • vertikal: einen Teil der Attribute auf verschiedene Relationen verteilen

22. Transaction Management

  • Transaction Properties ACID: Atomicity, Consistency, Isolation, Durability
  • Concurrency Problems: lost update, uncommitted dependency (= dirty read), inconsistent analysis
  • Serializability
  • Recoverability: Transaktionen dürfen nur rollback'd werden, wenn sie noch keine Folgewirkungen verursachten ==> Cascading rollbacks lieber verbieten
  • Locking: shared/exclusive
  • 2PhaseLocking: growing phase (locking), shrinking phase (free), am Höhepunkt ist alles gelockt, vorher nur lock, nachher nur free (==> garantiert serializability)
  • 2PhaseLocking mit allen free bei EndTransaction verhindert auch cascading rollbacks
  • indexLocking
    • lock-coupling oder crabbing: shareLock auf Root, shareLock auf child, free root, shareLock grandChild, free child etc
    • für Inserts alles exklusive und free nur falls noch Platz für einen Entry
  • Latch: KurzZeit Lock (z.B. für physische pages etc.) = zuschnappen, zuklinken, verriegeln, einrasten
  • Timestamping Methods
    • each transaction has a timestamp and can use only items, that have been read/updated only by older transactions
    • each dataItem has a lastReadTrans and lastUpdateTrans Timestamp
    • Multiversion techniques ==> Transactions lesen/schreiben immer die richtige Version
  • Optimistic Techniques

Recovery: redo, undo usw.

  • shadow paging: Aenderung auf neue Seite schreiben, beim Rollback einfach alte Seiten wieder aktivieren

22.4 Advanced Transaction Models

für lang dauernde Transactions usw..

  • Nested Transaction: die Subtransactions können rollbacked werden
  • Savepoints: Zwischenpunkte um ohne Schachtelung Teil Rollbacken zu können
  • Sagas: Folge von einzelnen Transaktion, wenn eine abstürzt, werden die vorherigen Transaktionen durch KompenstationsTransaktionen rückgängig gemacht

23. Query Processing

Query Decomposition

  • Analysis
  • Normalization
  • Semantic analysis
  • simplificatin (logische Vereinfachung anwenden)

Transformation Rules, z.B.

  • cascade of selection σp∧q∧r(R) = σpqr(R)))
  • commutativity of selection
  • a sequence of Projections equals the last one
  • ThetaJoin und Selection sind commutativ
  • und viele mehr

Rule Based: Heuristisch Processing Strategies

  1. Selektionen so früh wie möglich
  2. Cartesisch Produkte mit späteren Selektion in eine JoinOperation vereinen
  3. durch Assoziativität von binären Operationen, die restriktivsten Selektionen zuerst durchführen
  4. Projektion so früh wie möglich
  5. compute common expression once

Cost estimation

  • hängen von aktuellen Statistiken ab
  • Kosten pro Algorithmus und Statistik Zahlen
  • Kostenvergleich verschiedener AccessPaths, Optimierung um kombinatorisch Explosion zu verhindern

Semantic Query Optimization

  • Optimizer kann logisch folgern, das ein Query nie ein Resultat bringt usw..

Alternative Approache

  • simulated annealing
  • iterative improvement (lokal Optimierungen)
  • Two-Phase Optimization Kombination der beiden obigen

24+25 Distriubted DBMSs

  • Fragmentation: eine Relation kann horizontal oder vertikal in verteilte Fragmente aufgeteilt werden
  • allocation: jedes Fragment in der optimal Verteilung
  • replication: Copies von Fragmenten auf verschiedenen Sites

Transparency

  • fragmentation transparency
  • location tranparency
  • replication transparency
  • local mapping tranparency
  • naming transparency
  • failure transparency

Date's Twelve Rules for DDBMS (1987)

  1. local autonomy
  2. no reliance on a central site
  3. continuous operation
  4. location independence = location transparency
  5. fragementation independence
  6. Replication independence
  7. distributed query processing
  8. distribute transaction processing
  9. hardware independence
  10. operationSystem independence
  11. Network independence
  12. Database independence (verschiedene DBMS evt. mit verschiedenen DatenModellen)

viele verschiedene distributed Protokolle für Locking usw..

  • 2PC=TwoPhaseCommit
    • phase1: Coordinatopr log't begin_commit, und schickt prepare message an alle participants
    • phase2:
      • if ein participant returns abort, log't coordinator das, und verschickt eine globalAbort message
      • if alle partitipants retun commit, log't coordinator das, und verschickt eine globalCommit message. (reSend bis Antwort von allen). Log endTransation
  • 3PC=ThreePhaseCommit ist nonBlock auch bei SiteFailures (ausser wenn alle zusammen tod sind)Commit message

26. Replication an Mobile Databases

3 Sorten Hosts:

  • mobile Host, nur wireless interface (evt. auch zu benachbarten mobile Hosts) zu
  • Mobile Support Stations die mit high speed wired network zu
  • fixed Hosts verbunden sind

Issues:

  • Mobile Hosts können verschwinden und in weit entfernten Cell wieder auftauchen
  • Transactionen müssen angepasst werden, da Mobile Hosts häufig Verbindung verlieren
  • replication, um offline auch noch etwas arbeiten zu können

27. ObjectOriented DBMSs

CAD, CAM, CASE, Network Managment, office information and multimedia, digital publishing, GIS, interactive and dynamic Websites haben Anfordungen, für die relationale DBs nur teilweise geeignet sind. Einige Weaknesses

  • poor representation of realWorld entities
  • semantic overloading (alles ist Relation bzw. Fremdschlüssen
  • poor support for integrity and constraints
  • homogenous data structure: keine direkte Abbildung von PartExplosionen, Hierarchien, Mengen von Tupeln, geschachtele Relationen usw..
  • rekursive Queries sind schwierig
  • impedance mismatch
  • kurze Transaktionen,
  • Schema Aenderungen sind schiwerig
  • schwach mit navigational access

Object-Oriented DB System Manifest, 1989

  • complex objects
  • object identiy
  • encapsulation
  • tyoe ir ckasses
  • inheritance
  • dynamic binding
  • DML must be computationally complete
  • Data types are extensible
  • data persistence
  • very large databases
  • concurrent users
  • recovery
  • simple queries

Pointer swizzling (converting object identifieres to memory pointers and back): copy versus inplace, eager versus lazy, direct versus indirect

Persistence Schemes

  • checkpointing: Subset des Adressraumes des Programmes wegspeicher
  • Serialization (pickling oder in distributed context marshaling): Closure eine Datenstruktur rausschreiben. Probleme: nicht ObjectId-treu, nicht incremental
  • explicit paging
    • reachability-based mit einem Objekt werden alle erreichbaren gespeichert
    • allocation-based, d.h. ein Objekt wird nur persistent gemacht, falls expliziet deklariert im Programm
      • by class, oder
      • by explicit call

Orthogonal Persistence (Atkinson 1983, Cockshott, 1983):

  • Persistence independence: ein Programm behandelt ein Objekt unabhängig davon, ob es persistent ist oder nciht
  • Data type orthogonality: alle Objekte, unabhängig vom Type, haben alle Möglichkeiten von Persistence
  • Transitive Persistence: welche Objekte Persistent gemacht werden ist unabhängig von Datentypen. Eine Verbreitete Technik ist reachability based = transistive Persistence
  • Queries könnten also auch auf transiente Objekte ausgeführt werden
  • Welche Objekte fallen unter Transaction Semantics ACID?
  • Long Duration Transactions brauchen andere Protokolle
  • Versions: die Geschichte von Objekt(Netzen) speichern, Identifiierbare Zustände: 3 Arten von Versions: transient, working, released
  • Schema Evolution:
    • modifying attributes or methods
    • changes to hierarchy
    • changes to the set of classes (creating, deleting, renaming ...)
    • z.B. Invarianten um SchemaEvolution zu Kontrollieren, Regeln für AenderungsPropagation usw..

Architektur

  • häufig client-server
  • storing/executing method

28. OO DBMSs - Standard and Systems

  • OMG = Object Management Group, nonprofit industry consortium, macht Vorschläge für Object Standards
  • OM = Object Model: designPortable abstract model
  • ORB = ObjectRequestBroker
  • Object Services, Grund Services
    • Collection: sets, bags, ...
    • Concurrency: lock manager
    • Event Management: dynamisches (un)register für spezifische Events
    • Externalization: Protocols und conventions for externaliation and internalization
    • Licensing: Verrechnung
    • Lifecycle: Operationen für create, copy, move, delete groups of related objects
    • Naming: bind a name to an object within a naming context
    • Persistent State: Interfaces für Persistency
    • Property: associate named values (properties) with any (external) component
    • Query: declarative query statements, erlaubt Operationen und inovocation of services
    • Relationship: dynamic association zwischen Objekten, die nichts voneinander wissen
    • Security: identification, authentication, authorization, ...
    • Time: single notion of time über verschiedene Maschinen
    • Trading object: matchmaking: advertis service and register for service
    • Transactions: twoPhaseCommit coordination für flat oder nested transactions
  • Common Facilities
    • horizontal common facilities: printing, secure time, internationalization, Mobile Agent
    • vertical domain facilities: spezifisch für Anwendungsgebiet

CORBA = Common Object Request Broker Architecture: definiert Architektur eines ORB-basierten environment

  • IDL Interface Definition Language, implementierungsNeutrale Beschreibung von Class Interfaces. Ein IDL-Compiler pro unterstützte Sprache.
  • Type Model: definiert die Werte, die übers Netz transportiert werden können
  • Interface Repository: speichert IDL Definitionen, mit Query Möglichkeiten
  • Methoden um die Interfaces und Specifications von Objekten abzufragen
  • Methoden um OIDs von/zu Strings zu transformieren
  • Static method invocation: der IDL Compiler generiert 3 Files
    • header für client und server
    • client source file, enthält interface stubs
      • Stub (engl. stub ‚Stummel‘, ‚Stumpf‘) steht für einen lokalen Anknüpfungspunkt für Software
    • server source file, enthält skeletons, die mit der nötigen Funktionalität erweitert werden
  • DII = Dynamic invocation interface erlaubt ObjektDefinitionen zur Laufzeit aus einem Interface Repository zu holen
  • DSI = Dynamic Skeleton Interface: ServerSide Analogo n zu DII
  • Object Adapter: HauptMethode für eine ServerSide Object um ORB Services zu benutzen.
  • Nachteile
    • keine Methode um ObjektImplentierungen zu verteilen
    • nur beschränkter Support für Server Programming Patterns
    • Objekte können nur durch Vererbung erweitert werden
    • Availability of CorbaServices wird nicht zum voraus publiziert
    • kein Ojbect LifeCycleManagement

CORBA 3.0 Component Model = CCM

  • ccmComponents als buildingBlocks
  • container gibt das server runtime environment für executors = component Implementierungen
  • zwei containter Typen: sessionContainter und entityContainer
  • 4 Kombination von containerAPItype und external API type:
    • service component category. no state, no identity (für einfache wrapper von Prozeduralen Anwendungen)
    • session component category. transient state, nonpersistent identity
    • entity component category. persistent state, nonpersistent identity
    • process component category. persisten state, für client nicht sichtbar. Persistent identity. Behaviour kann transaktionel sein
  • CIF = Component Implementation Framework

28.2 Object Data Standard ODMG 3.0 1999

Vereinigung verschiedener vendors, definiert Standards für OODBMS (und löste sich 2001 auf)

  • OM = Object Model, ein Superset des OMG OM
  • ODL = Object Definition Language
  • OQL = Object Query Language
  • Language Bindings for C++, Java und Smalltalk
  • Java Language Binding war base für JDO = Java Data Objects Specifiction

OM: modeling primitives: object und literal

  • nur object hat eindeutigen identifier
  • Objects und Literals haben Types (sind auch Objects)
  • Behavior = Operationen auf Objekten
  • State = set of Properties / values eines Objekts. Property: attribute oder relationship
  • ein ODMS speichert Objekte, erlaubt multiUserBenutzung, hat eine Schema in ODL

Objekte habe 4 Charakteristika: Struktur, Identifier, Name und Lifetime

  • Objekt Struktur
    • Literal
      • AtomicLiteral: long, long long, ...., boolean, octet, char, string, enum<>
      • CollectionLiteral: set<>, bag<>, list<>, array<>, dictionary<>
      • StructuredLiteral: date, time, timestamp, interval, structure<>
    • Object
      • AtomicObject: z.B. UserDefined
      • CollectionObject: Set<>, Bag<>, List<>, Array<>, Dictionary<>
      • StructuredObject: Date, Time, Timestamp, Interval
  • Objekte einen eindeutigen, nie wiederverwendeten Identifier, und möglicherweise einen Namen, der Usern als Eintrittspunkt in die DB dient
  • Objekt lifetimes: transient oder persistent
  • Relationships: binäre, 1:1, 1:* und *:*
  • Interfaces und Inheritance wie in Java
  • Extent: Menge aller Objekte eine Types innerhalbe eines ODMS
  • Key bestimmt eindeutig die Instanzen eines Types
  • Exception Hierarchie
  • MetaData für
    • scopes
    • metaObjects: Modules, operations, exceptions, constants, peropertis (attributes und relationships), Types (interfaces, classes, collections, constructed types)
    • specifiers: benamsen einen Type in einem Kontext
    • operands: base type für alle Constants
  • database (instance of Type Database). Named Objects. open, close, lookup etc..
  • Modules gruppieren einen teil eines Schemas
  • ODL Erweiterung von IDL

OQL

  • define Q as e: definiert ein benanntes Query names Q, also eine view, durch die expression e
  • elementary expressions
    • atomic literal, z.B. 10, 'abc'
    • ein benanntes Objekt (aus der DB, typischerweise ein Extent)
    • eine Iterator variable aus dem from eines selects: e AS x, e x, x IN e
    • eine definiertes Query
  • construction expression, z.B. Mangager(no:123, name: 'john, ...), analog für struct, Set, ...
  • atomic type expression: die üblichen Operatoren
  • object expressions: =, !=, attribute Zugriff (. oder ->), methodInvocation
  • collection expression; Quantoren for all (for all x in managers: x.name = 'john')und exists, membershib test in, select from where, order by, group by, min, max ...
  • conversions

andere Teile des ODMG Standards

  • OIF = Object Interchange Format
  • ODMG Language Bindings
  • Object Manipulation Language: new Operator is overloaded, für transiente und persistente Objektze

29. Object Relational DBMSs

CADF Commit for Advanced DBMS Function publishd (Stonebreake et al. 1990) the Third-Generation Database System Manifesto:

  1. a rich type system
  2. inheritance
  3. functions, including db procedures, methods, encapsulation
  4. Unique Identifiers for records only if no user defined primary key
  5. Rules (triggers, constraints) will become a major feature
  6. all access by a non proecedural high level language
  7. at least to ways to define collections: enumeration of members and queryLanguage to specify membership
  8. updatable views
  9. performance indicators separated fro mdatamodel
  10. access from multiple high-level languages
  11. Persistent forms of highLevel languages should be supported by a sinble DBMS by compiler extensions and runtime system
  12. SQL si intergalactic dataspeak
  13. Queries and answers sind die tiefste Kommunikationsebene zwischen Client und Server

Darwen und Date (1995, 2000) verteidigen relation data model im Third Manifesto. OO orthogonal zum relationalen Model. Also braucht es keine Erweiterung, aber SQL soll durch die bessere Sprache D ersetzt werden

  • domain: benannte Menge von beliebig komplizierten gekapselten Werten (entspricht data type oder class)
  • type constructor für RELATION und TUPEL
  • Vorschriften, Verbote und very strong suggestion für Relationales Modell und orthogonal OO

SQL:2008

  • row types (sequence von Namen/Datentypen Paaren), die in Variabeln versorgt, als Parameter und ReturnWerte
  • UDT user defined types
  • encapsulation mit observerund mutator funkionen (=getter und setter)
  • sub/superTypes
  • UDR = UserDefinedRoutines
  • Polymorphism und InstanceMethodInvocation
  • Reference Types und Object Identity
  • Collection Types: Array, Multiset
  • Triggers
  • large Objects
  • linear recursion: with recursive ...

30. Web Technoloty and DBMSs

  • scripting languages: JavaScript, JScript, VBScript, Perl, PHP
  • CGI = Common Gateway Interface. Jeder Request macht einen neuen Prozess
  • API Microsoft bzw. Apache Variante. Non-CGI. Zusätzlich SecurityLayer. Interface ist komplexer bei bessere Performance
  • EJB = Enterprise Java Beans. Server sided component architecture:
    • EJB Session Beans: implementieren BusinessLogic und Workflow
    • EJB Message Driven Beans: verarbeiten Message und rufen typischerweise Session Beans auf
    • EJB Entity Beans: persistent data
      • BMP = Bean Managed Persistence Entity Beans, da muss irgendeine Art Persistenz reinprogrammiert werden
      • CMP = Container Managed Persistence Entity Beans: Container übernimmt Persistenz automatisch
    • JPA = Jave Persistence API ist Ersatz für Entity Beans in EJB 3.0
  • JDBC
    • SQL wird als String übergeben
    • direct Mapping Relational ⇔ OO: jedes Tupel wird ein Objekt. Aber auch komplexere Varianten sind möglich
    • JDBC API: zwischen Applikation und JDBC
    • JDBC-ODBC bridge driver: via ODBC
    • partial JDBC driver: damit ruft JDBC die nativen APIs eines DBMS aufdirekter Aufruf Schnittstelle. D.h. jeder client muss Software des DBMS installieren
    • pure Java JDBC dirver for database middleware. Sprechen mit MiddleWareServer, der dann auf das DB Protokoll geht
    • pure Java JDBC driver with a direct database connection: benutzt direkt das network Protokoll zur DB.
    • classes
      • DriverManager: verwaltet Drivers
      • Connection
      • ResultSet (enthält cursor auf current row)
      • Statement
        • execute für mehrere ResultSet
        • executeQuery für ein einziges ResultSet
        • executeUpdate für andere Statements
      • PreparedStatement
      • CallableStatement: Ausführen von Stored Procedures
      • DatabaseMetaData und ResultSetMetaData
      • SQLException und SQLWarning
  • SQLJ: embedded statische SQL in Java
  • JDO
    • PersistenceCapable interface, muss eine class implementieren um Persistence zu benutzen
    • PersistenceManager: makePersistent, deletePersistent, getObjectByID usw.
    • Query Interface
    • benutzen Annotations (statt eine externe Beschreibung)
    • JDOQL JDO Query Language: candidate class, candidate collection and a filter = String with a javaLike boolen expression
    • Queries können auch in annotations definiert werden
  • JPA = Java Persistence API
    • Persistenz für normal Objects, auch RelationsShips in annotations, objectRelational Mapping, Entity inheritance

31. Semistructured Data and XML

OEM Object Exchange Model: für SemiSturcturedData: da besteht ein Objekt aus einem Identifier, ein TextLabel, Type und Value.

  • atomic object: 1 Wert für einen baseType
  • alle anderen Objekt sind komplex = Menge von objektIDs

Lore = Lightwight Object Repository ist ein multiUser DBMS

  • Lorel Lore Language: Queries geben auch vernünftig Resutate wenn Daten fehlen, einheitlich über Single- und MultiValued Attribute, verschiedene datenTypen. Resultate mit heterogenen Objekten, auch bei nur teilweise bekannter ObjektStruktur
  • DataGuide: dynamisch generierte StrukturInfo
    • concise: jeder LabelPath der DB ist genau einmal im DataGuide
    • accurate: jeder LabelPath des DataGuide kommt in der DB vor
    • convient: ist ein OEM oder XML Objekt

SQL/XML: ähnlich wie in DB2

32. Data Warehousing Concepts

  • ETL Extract transform load

33. Data Warehousing Design

  • Star Schema
    • fact table mit composite primary key
    • dimension table mit simple primary key, ein Element des primary keys
    • natural keys werden durch surrogate keys ersetzt (Integers)
  • Snowflake Schema
    • hierarchische Verallgemeinerung des Star Schemas: Dimension tables können selber wieder dimensions haben

34. OLAP OnLine Analytical Processing

  • multidimensional view of data
  • complex calculations
  • time intelligence

SQL Extensions

  • group by rollup (...): subTotal auf allen zwischen Leveln
  • group by cube (...): ZwischenTotal über alle Kombinationen
  • RANK() OVER (ORDER BY ...)
  • DENSE_RANK() OVER (ORDER BY ...)
  • Windowing: z.B. SUM(...) OVER(ORDER BY..., ROWS 2 PRECEDING)

35. Data Mining

4 grundlegende Techniken

  • Predictive Modeling. Model wird entwickelt durch supervised learning. 2 Techniken
    • Classification mit tree induction oder neural network
    • Value prediction: mit linear und nonLinear Regressions
  • Database Segmentation: DB in (homogene) Clusters partitionieren: unsupervised learning
  • Link Analysis: sucht wenn dann Regeln aus den vorhandenen Daten
  • Deviation Detection: entdeckt Ausnahmen zu bekannten Erwartungen/Normen