Lecture22 Databases I
Transcript of Lecture22 Databases I
![Page 1: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/1.jpg)
Databases CS111
![Page 2: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/2.jpg)
Part 1 Know what a database is.
Understand why they are useful and when you might want to use one.
Have a basic understanding of how the most common type of databases, “Relational Databases” are organized.
Learning how to use Microsoft Access, a database management system
- Create a database
- Add information to the database
- Retrieve information from the database
Part 2
Part 3 Lab exercises
![Page 3: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/3.jpg)
What is a Database?
![Page 4: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/4.jpg)
What is a database? A database is a collection of data that is organized in a systematic way.
The data stored in a database is generally about a single topic. For example:
Patients’ files in a hospital
The contents of an address book
A catalog of movies in a video store
![Page 5: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/5.jpg)
Computers make large databases possible
Digital computers have made electronic databases possible, which facilitate
the storage of very large quantities of information
the efficient addition, modification or removal of that information
rapid search and retrieval of desired information
Modern society relies heavily on the electronic databases that digital computers make possible.
![Page 6: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/6.jpg)
Database:WhatDatabaseiscollectionofrelateddataanditsmetadataorganizedinastructuredformatforoptimizedinformationmanagement
DatabaseManagementSystem(DBMS)isasoftwarethatenableseasycreation,access,andmodificationofdatabasesforefficientandeffectivedatabasemanagement
DatabaseSystemisanintegratedsystemofhardware,software,people,procedures,anddatathatdefineandregulatethecollection,storage,management,anduseofdatawithinadatabaseenvironment
6
![Page 7: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/7.jpg)
DatabaseManagementSystem
7
Database Systems: Design, Implementation, & Management: Rob & Coronel
- manages interaction between end users and database
![Page 8: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/8.jpg)
DatabaseSystemEnvironment
8
Database Systems: Design, Implementation, & Management: Rob & Coronel
§ Hardware § Software - OS - DBMS - Applications
§ People
§ Procedures
§ Data
![Page 9: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/9.jpg)
Question: What websites have you visited that likely use a database?
![Page 10: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/10.jpg)
These websites use databases A library catalogue Online stores or auction websites
Database management systems play a central role in the vast majority of modern businesses.
![Page 11: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/11.jpg)
What is NOT a database? The following are collections of data, and they can be “organized” but they are not considered databases.
a file-system (e.g. the “C: drive” on your computer)
a word-processing document
a text-file that is written and edited by hand (e.g. using notepad, emacs)
The difference lies in how databases are organized.
![Page 12: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/12.jpg)
Imagine you want to keep track of films that you have watched.
A non-database solution is to use a plain text file (or a word processing document)
But this could lead to many problems -- especially as the size of your “database” grew…
A bad “database”
![Page 13: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/13.jpg)
In this format, the data is not easily searched. e.g. What if you want to know which movies are directed by Ben Affleck (and not those in which he is the star)?
It would be very difficult to transform this data into another format, e.g. to display it on a website.
In this format, it is not easy to edit the data in the database, e.g. changing the rating from an “out of 5 stars” system to an “out of 10 stars” would involve a lot of manual labour.
In this format, there is nothing that prevents errors from creeping in, e.g. the same film being added twice?
A bad “database”
![Page 14: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/14.jpg)
Database Management Systems (DBMS) such as Microsoft Access, MySQL, and Oracle can help you avoid these problems (but they don’t 100% prevent them).
...they also don’t work on their own. To properly take advantage of DBMS requires knowledge of database design...
… and thus, knowledge of database design is central to a whole career path. Search google for “database analyst jobs” !
Databases to the rescue!
![Page 15: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/15.jpg)
EvolutionofDataModelsTimeline
1960s 1970s 1980s 1990s 2000+
File-basedHierarchical
Network
Relational
Object-oriented
Web-basedEntity-Relationship
![Page 16: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/16.jpg)
Database:HistoricalRoots ManualFileSystem
• tokeeptrackofdata
• usedtaggedfilefoldersinafilingcabinet
• organizedaccordingtoexpectedusee.g.filepercustomer
• easytocreate,buthardto
• locatedata
• aggregate/summarizedata
![Page 17: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/17.jpg)
Database:HistoricalRoots ComputerizedFileSystem
• toaccommodatethedatagrowthandinformationneed
• manualfilesystemstructureswereduplicatedinthecomputer
• DataProcessing(DP)specialistswrotecustomizedprogramsto:
• write,delete,updatedata(i.e.management)
• extractandpresentdatainvariousformats(i.e.report)
![Page 18: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/18.jpg)
FileSystem:Example
Database Systems: Design, Implementation, & Management: Rob & Coronel
![Page 19: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/19.jpg)
FileSystem:Weakness
Weakness
“Islandsofdata”inscatteredfilesystems.
Problems
Duplication-samedatamaybestoredinmultiplefiles
Inconsistency-samedatamaybestoredbydifferentnamesindifferentformat
Rigidity-requirescustomizedprogrammingtoimplementanychanges
cannotdoad-hocqueries
S511 Session 2, IU-SLIS 19
![Page 20: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/20.jpg)
DatabaseSystemvs.FileSystem
Database Systems: Design, Implementation, & Management: Rob & Coronel
![Page 21: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/21.jpg)
NetworkDatabase:Example
Database Systems: Design, Implementation, & Management: Rob & Coronel
![Page 22: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/22.jpg)
Database Design
![Page 23: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/23.jpg)
Relational and Non-Relational Databases
There are two broad classes of databases, relational and non-relational.
We are going to focus on relational databases, which were introduced in the late 1970’s and remain the most widely used approach today.
![Page 24: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/24.jpg)
Tables, Records and Fields In a relational database, data is organized into tables, where:
Each row in a table represents a record -- a “thing”
Each column in a table represents a field -- an “attribute”
A collection of tables form a database.
But this is all most easily seen with an example. Here we see a single table that contains the attributes of several students.
Field
Record
![Page 25: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/25.jpg)
Relationships Between Tables
The structure of databases comes from relationships, which are connections between records in different tables.
Course
![Page 26: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/26.jpg)
How do relationships work? There are two parts to a relationship, a primary key and a foreign key.
The primary key is a unique way of identifying a record in the table
Generally:
- every table will have a primary key field
- all records must have a value in the primary key field
- the primary key’s value must be unique
Primary Key
![Page 27: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/27.jpg)
Question Which field makes a good primary key in this table?
![Page 28: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/28.jpg)
Foreign keys A foreign key refers to a primary key in another table.
This creates a connection or relationship between the two records.
Primary Key Primary Key
Foreign Key Foreign Key
![Page 29: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/29.jpg)
Types of Relationships
There are three kinds of relationship that one can build using primary keys (PK) and foreign keys (FK)
One to many one record (ie one row) in TableA can be related to multiple records in TableB
One to one one record in TableA can be related to exactly one record in TableB
Many to many multiple records in TableA can be related to multiple records in TableB
![Page 30: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/30.jpg)
One to many
One record in TableA can be related to multiple records in TableB
Example: Each enrollment refers to a single student. But each student can have several enrollments.
One record in the StudentsTable can be related to multiple records in the EnrolmentsTable(but not vice versa)
Foreign Key
Primary Key
1
∞
Table A
Table B
![Page 31: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/31.jpg)
One to one
One record in TableA is related to exactly one record in TableB
This relationship is relatively rare, as often it makes more sense for Table A and Table B to be merged into a single table.
Sometimes this relationship is used when some data is costly to access and less frequently accessed.
STUDENTS
ID (primary key)
Full Name
Date of Birth
PHOTOS
ID (primary key)
ImageData
1 1
![Page 32: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/32.jpg)
Here is an example of the many-to-many relationship.
The roles table can be thought of as saying: “SarahPolley played the role of Ana in DawnoftheDead” “SarahPolley played the role of Elsain Splice” “BenAffleck played the role of BruceWayne in Batmanvs.Superman” “VingRhames played the role of KennethHall in DawnoftheDead”
Each actor can be associated with multiple films. Each film can be associated with multiple actors!
Many-to-many relationship
ACTORS
ID First Name Last Name
1 Sarah Polley
2 Ving Rhames
3 Ben Affleck
FILMS
ID Title
1 Dawn of the Dead
2 Splice
3 Batman vs. Superman
ROLES
ID Role ActorID FilmID
1 Ana Clark 1 1
2 Elsa 1 2
3 Bruce Wayne 3 3
4 Kenneth Hall 2 1
![Page 33: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/33.jpg)
This is a relationship diagram, showing a database with 4 tables and the relationships between them
EXERCISE 1. What is the relationship between actors and roles?
2. What is the relationship between roles and films?
3. What is the relationship between actors and photos?
4. What is the relationship between actors and films?
Relationship diagrams
ACTORS
ID (primary key)
Full Name
Date of Birth
FILMS
ID (primary key)
Title
ROLES
ID (primary key)
Role
Actor ID (foreign key)
Film ID (foreign key)
1
∞ ∞
1
PHOTOS
ID (primary key)
ImageData
1
1
![Page 34: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/34.jpg)
Question Why is this relationship perhaps not a good idea?
ACTORS
ID (primary key)
Full Name
Photo ID (foreign key)
FILMS
ID (primary key)
Title
ROLES
ID (primary key)
Role
Actor ID (foreign key)
Film ID (foreign key)
1
∞ ∞
1
PHOTOS
ID (primary key)
ImageData
1
1
![Page 35: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/35.jpg)
Question Why is this relationship perhaps not a good idea? A: It is not uncommon for multiple actors to play the same role (e.g. young and old versions of the same role). Designing DB and the relationships can be hard!
ACTORS
ID (primary key)
Full Name
Photo ID (foreign key)
FILMS
ID (primary key)
Title
ROLES
ID (primary key)
Role
Actor ID (foreign key)
Film ID (foreign key)
1
∞ ∞
1
PHOTOS
ID (primary key)
ImageData
1
1
![Page 36: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/36.jpg)
Referential Integrity
One of the advantages of using a DBMS is it can force you to keep relationships valid.
A database with “referential integrity” is one in which “the references in the database all make sense”
More formally, referential integrity requires all values of a foreign key field to be:
- present in the related primary key field, OR
- Null (ie. blank)
ROLES
ID Role ActorID (FK)
1 Ana 1
2 Elsa 1
3 Bruce Wayne 3
4 Charlie Brown 4
5 Claire Underwood Null
ACTORS
ID (PK) First Name Last Name
1 Sarah Polley
2 Laurence Fishburne
3 Ben Affleck
![Page 37: Lecture22 Databases I](https://reader030.fdocuments.in/reader030/viewer/2022012720/61b2e030ec857d1bd857b952/html5/thumbnails/37.jpg)
Review
A database is a collection of data that is systematically organized, so as to allow efficient addition, modification, removal and retrieval.
A relational database is a collection of tables, where each row of the table is a record and each column is a field.
Databases use foreign keys and primary keys to establish relationships between records on different tables.
A database has referential integrity when all of the values in all foreign key fields point to the primary key of an existing record in the appropriate table (or are null).