Chapter 1

Database Management System (DBMS)

  • DBMS contains info about a particular enterprise (ex. an institution, a business)

    • Collection of interrelated data (ex. info on an employee’s address, benefit’s that employee’s have)

    • Set of programs to access the data

    • An environment that is both convenient and efficient to use

  • Examples of Database Application include things like transactions in Banking or Reservations in Airlines - Databases touch on all aspects of our lives

  • University Database Example

    • Application program examples

      • Add new students, instructors, and courses

      • Register students for courses, and generate class rosters

      • Assign grades to students, computer GPA and generate transcripts

    • In the early days, database applications were built directly on top of file systems

  • Purpose of Database Systems

    • Drawbacks of using file systems to store data:

      • Data redundancy and inconsistency

        • Multiple file formats, duplication of information in different files

      • Difficulty in accessing data

        • Need to write a new program to carry out each new task

      • Data isolation - multiple files and formats

        • Join - Merging two different files together to create one file

      • Integrity problems

        • Integrity constraints (e.g. account balance < 0) become “buried” in program code rather than being stated explicitly

        • Hard to add new constraints or change existing ones

      • Atomicity of updates

        • Failures may leave database in an inconsistent state with partial updates carried out

        • Ex.: transfer of funds from one account to another should either complete or not happen at all

      • Concurrent access by multiple users

        • Concurrent access needed for performance

        • Ex.: Two people reading a balance and updating the balance by withdrawing money at the same time

      • Security problems

        • Hard to provide user access to some, but not all, data

    • Database systems offer solutions to all the above problems

Levels of Abstraction

  • Physical Level: describes how a record (e.g., customer) is stored.

  • Logical Level: describes data stored in database, and the relationships among the data.

  • View Level: applications programs hide details of data types. Views can also hide information (such as an employee’s salary) for security purposes.

Instances and Schemas

  • Similar to types and variables in programming languages

  • Schema - the logical structure of the databse

    • Ex.: The databases consists of information about a set of customers and accounts and the relationship between them

    • Analogous to type information of a variable in a program

    • Physical schema: database design at the physical level

    • Logical schema: database design at the logical level

  • Instance - the actual content of a database at a particular time

    • Analogous to the value of a variable

  • Physical Data Independence - the ability to modify the physical schema without changing the logical schema

    • Applications depend on the logical schema

    • In general, the interfaces between the various levels and components should be well defined so that changes in some parts do not seriously influence others.

Data Models

  • A collection of tools for describing

    • Data

    • Data relationships

    • data semantics

    • data constraints

  • Some examples of models include:

    • Relational Model

    • Entity-Relationship data model (mainly for database design)

    • Object-based data model (object oriented and object-relational)

    • Semistructured data model (XML)

  • Other Older models include

    • Network model

    • Hierarchical model

Relational Model

  • Details will be in Chapter 2, so why tf are we atlking about it now. idk picture in slides

  • Type in the relational model is the domain where you pull values from. Ex.: The column name is the type of data that the column shows