Relational Model of Data
Thomas Schwarz, SJ
Relational Model of Data Thomas Schwarz, SJ Data Model Notation - - PowerPoint PPT Presentation
Relational Model of Data Thomas Schwarz, SJ Data Model Notation for describing data 1. Structure of the Data Conceptual level, not binary 2.Operations on Data Limits on operations are useful! 3.Constraints on Data Data Model In
Thomas Schwarz, SJ
2.Operations on Data
3.Constraints on Data
Title Year Length Genre Gone with the wind 1939 231 drama Star wars 1977 124 scifi Wayne’s world 1992 95 comedy
{ "hollywood": { "movies": [ { "title": "Gone with the wind", "year": "1939", "length": "231", "genre": "drama" }, { "title": "Star wars", "year": "1977", "length": "124", "genre": "scifi" }, { "title": "Gone with the wind", "year": "1992", "length": "95", "genre": "comedy" } ] } }
(Gone with the wind, 1939, 231, drama)
length:integer, genre:string)
Year Genre Title Length 1977 scifi Star wars 124 1992 comedy Wayne’s world 95 1939 drama Gone with the wind 231
same title and the same year
Security Number (SSN)
Movies(title: string, year: string, length: integer, genre: string, studioName: string, producerC#: integer)
MovieStar(name: string, year: string, address: string, gender: char, birthdate: date)
StarsIn(movieTitle: string, movieYear: int, starName: string)
MovieExec( name: string, address: string, cert#: integer, netWorth: integer)
Studio(name: string, address: string, presC#: integer)
CREATE DATABASE IF NOT EXISTS USNavy;
efficiency
CREATE TABLE Movies( title CHAR(100), year INT, length INT, genre CHAR(10), studioName CHAR(30), producerC# INT );
CREATE TABLE MovieStar( name CHAR(30), address VARCHAR(255), gender CHAR(1), birthday DATE );
DROP TABLE Movies;
ALTER TABLE MovieStar ADD phone CHAR(16); ALTER TABLE MovieStar DROP Birthday;
CREATE TABLE MovieStar( name CHAR(30), address VARCHAR(255), gender CHAR(1) DEFAULT '?', birthday DATE DEFAULT '0000-00-00' );
rejected
CREATE TABLE MovieStar( name CHAR(30) PRIMARY KEY, address VARCHAR(255), gender CHAR(1), birthday DATE );
CREATE TABLE MovieStar( name CHAR(30), address VARCHAR(255), gender CHAR(1) DEFAULT '?', birthday DATE DEFAULT '0000-00-00', PRIMARY KEY (name) );
CREATE TABLE Movies( title CHAR(100), year INT, length INT, genre CHAR(10), studioName CHAR(30), producerC# INT, PRIMARY KEY (title, year) );
upper right corner
USE sales;
date_of_purchase:date, customer_id:int, item_code VARCHAR(10) )
customers(customer_id: int, first_name: varchar(255), last_name: varchar(255), email_address: varchar(255), number_of_complaints: int)
panel
columns)
R S R ∪ S R ∩ S R − S
πA1,A2,…,An(R) R A1, A2, …, An
σcond(R) R
R × S R × S = {(r, s)|r ∈ R, s ∈ S}
the other relation
common attributes.
R ⋈ S R S
R A B 1 2 3 4 5 6 S A C 1 4 5 6
R x S R.A B S.A C 1 2 1 4 1 2 5 6 3 4 1 4 3 4 5 6 5 6 1 4 5 6 5 6
R A B 1 2 3 4 5 6 S A C 1 4 5 6 R S A B C 1 2 4 5 6 6
⋈
for A and B:
R A B C 1 1 2 1 1 3 1 2 4 S A B D 1 1 2 1 1 5 2 1 4 2 2 1 A B C D 1 1 2 2 1 1 2 5 1 1 3 2 1 1 3 5
R ⋈ S
attribute values
bowtie, usually named .
Θ θ
R ⋈θ S θ = R . A ≥ S . A
R A B C 1 2 1 0 1 2 3 3 3 S A B D 1 1 5 1 2 6 4 1 2 A R.B S.B C D 1 2 1 1 5 1 2 2 2 6 3 3 1 3 5 3 3 2 3 6
R ⋈θ S
R ⋈θ S θ = (R . A ≠ S . A AND R . B = S . B)
R A B C 1 2 1 0 1 2 3 3 3 S A B D 1 1 5 1 2 6 4 1 2 R.A S.A B C D 0 1 2 1 6 0 4 1 2 2
R ⋈θ S
by Fox that are at least 100 minutes long
∩
<latexit sha1_base64="8rA8oUyIcN+LK9g/W1FPxskyc=">AB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mkoMeiF48VTFtoQ9lsp+3SzSbsboQS+hu8eFDEqz/Im/GTZuDtj4YeLw3w8y8MBFcG9f9dkobm1vbO+Xdyt7+weFR9fikreNUMfRZLGLVDalGwSX6huB3UQhjUKBnXB6l/udJ1Sax/LRzBIMIjqWfMQZNVby+4wmlUG15tbdBcg68QpSgwKtQfWrP4xZGqE0TFCte56bmCjynAmcF7pxoTyqZ0jD1LJY1QB9ni2Dm5sMqQjGJlSxqyUH9PZDTSehaFtjOiZqJXvVz8z+ulZnQTZFwmqUHJlotGqSAmJvnZMgVMiNmlCmuL2VsAlVlBmbTx6Ct/ryOmlf1b1GvfHQqDVvizjKcAbncAkeXEMT7qEFPjDg8Ayv8OZI58V5dz6WrSWnmDmFP3A+fwA3m45N</latexit>Movies
σlength≥100
<latexit sha1_base64="wMECjYqZV6rJXcbkBSXoKpJmVE=">ACHicbVC7SgNBFJ2NrxhfUsLB4NgFXYloGXQxjKCeUA2LOTu5shM7PLzKwYlpQ2/oqNhSK2foKdf+PkUWjigQuHc+7l3nvClDNtXPfbKaysrq1vFDdLW9s7u3vl/YOWTjJFoUkTnqhOSDRwJqFpmOHQSRUQEXJoh8Prid+B6VZIu/MKIWeILFkEaPEWCkoH/uaxYIEuS/C5CHnIGMzGM/Buy57rgUlCtu1Z0CLxNvTipojkZQ/vL7Cc0ESEM50bruanp5UQZRjmMS36mISV0SGLoWiqJAN3Lp4+M8alV+jhKlC1p8FT9PZETofVIhLZTEDPQi95E/M/rZia67OVMpkBSWeLoxjk+BJKrjPFDR5YQqpi9FdMBUYQam90kBG/x5WXSOq96tWrtlapX83jKIjdILOkIcuUB3doAZqIoe0TN6RW/Ok/PivDsfs9aCM585RH/gfP4A6C2ZOw=</latexit>Movies
σstudioname=fox
<latexit sha1_base64="3jeEf8/TIqd+Uc+r7PFGA9C7SjI=">ACEXicbZDLSsNAFIYn9VbrerSzWARuiqJFHQjFN24rGAv0IQwmUzaoTOZMDORlpBXcOruHGhiFt37nwbJ20X2vrDwM93zuHM+YOEUaVt+9sqra1vbG6Vtys7u3v7B9XDo64SqcSkgwUTsh8gRiNSUdTzUg/kQTxgJFeML4p6r0HIhUV8b2eJsTjaBjTiGKkDfKrdVfRIUd+5vJATDKl09BwxEkOr+CcRWKS5xW/WrMb9kxw1TgLUwMLtf3qlxsKnHISa8yQUgPHTrSXIakpZiSvuKkiCcJjNCQDY4udystmF+XwzJAQRkKaF2s4o78nMsSVmvLAdHKkR2q5VsD/aoNUR5deRuMk1STG80VRyqAWsIgHhlQSrNnUGIQlNX+FeIQkwtqEWITgLJ+8arnDafZaN41a63rRxlcAJOQR04AK0wC1ogw7A4BE8g1fwZj1ZL9a79TFvLVmLmWPwR9bnD6fSnic=</latexit>πtitle,year
<latexit sha1_base64="+UwI3UaWiJx2IAujrYTGjcoCGzc=">ACHicbVC7TsMwFHV4lvIKMDJgUSExoCpBlWCsYGEsEn1ITRQ5rtNajZ3IdhBRlJGFX2FhACFWPoGNv8FJM0DLlSwdn3Pte/x45BKZVnfxtLyuraem2jvrm1vbNr7u3ZJQITLo4CiMx8JEkIeWkq6gKySAWBDE/JH1/el3o/XsiJI34nUpj4jI05jSgGClNeaRE1Mvc5gfPWSlPT+bXVKCRJ7XPbNhNa2y4CKwK9AVXU8sZRThCscIimHthUrN0NCUayn151EkhjhKRqToYcMSLdrFwkhyeaGcEgEvpwBUv2tyNDTMqU+bqTITWR81pB/qcNExVcuhnlcaIx7OHgiSEKoJFKnBEBcEqTDVAWFD9V4gnSCsdHZFCPb8yougd960W83WbavRvqriqIFDcAxOgQ0uQBvcgA7oAgwewTN4BW/Gk/FivBsfs9Ylo/IcgD9lfP4A9MuakQ=</latexit>∩
<latexit sha1_base64="8rA8oUyIcN+LK9g/W1FPxskyc=">AB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0mkoMeiF48VTFtoQ9lsp+3SzSbsboQS+hu8eFDEqz/Im/GTZuDtj4YeLw3w8y8MBFcG9f9dkobm1vbO+Xdyt7+weFR9fikreNUMfRZLGLVDalGwSX6huB3UQhjUKBnXB6l/udJ1Sax/LRzBIMIjqWfMQZNVby+4wmlUG15tbdBcg68QpSgwKtQfWrP4xZGqE0TFCte56bmCjynAmcF7pxoTyqZ0jD1LJY1QB9ni2Dm5sMqQjGJlSxqyUH9PZDTSehaFtjOiZqJXvVz8z+ulZnQTZFwmqUHJlotGqSAmJvnZMgVMiNmlCmuL2VsAlVlBmbTx6Ct/ryOmlf1b1GvfHQqDVvizjKcAbncAkeXEMT7qEFPjDg8Ayv8OZI58V5dz6WrSWnmDmFP3A+fwA3m45N</latexit>Movies
σlength≥100
<latexit sha1_base64="wMECjYqZV6rJXcbkBSXoKpJmVE=">ACHicbVC7SgNBFJ2NrxhfUsLB4NgFXYloGXQxjKCeUA2LOTu5shM7PLzKwYlpQ2/oqNhSK2foKdf+PkUWjigQuHc+7l3nvClDNtXPfbKaysrq1vFDdLW9s7u3vl/YOWTjJFoUkTnqhOSDRwJqFpmOHQSRUQEXJoh8Prid+B6VZIu/MKIWeILFkEaPEWCkoH/uaxYIEuS/C5CHnIGMzGM/Buy57rgUlCtu1Z0CLxNvTipojkZQ/vL7Cc0ESEM50bruanp5UQZRjmMS36mISV0SGLoWiqJAN3Lp4+M8alV+jhKlC1p8FT9PZETofVIhLZTEDPQi95E/M/rZia67OVMpkBSWeLoxjk+BJKrjPFDR5YQqpi9FdMBUYQam90kBG/x5WXSOq96tWrtlapX83jKIjdILOkIcuUB3doAZqIoe0TN6RW/Ok/PivDsfs9aCM585RH/gfP4A6C2ZOw=</latexit>Movies
σstudioname=fox
<latexit sha1_base64="3jeEf8/TIqd+Uc+r7PFGA9C7SjI=">ACEXicbZDLSsNAFIYn9VbrerSzWARuiqJFHQjFN24rGAv0IQwmUzaoTOZMDORlpBXcOruHGhiFt37nwbJ20X2vrDwM93zuHM+YOEUaVt+9sqra1vbG6Vtys7u3v7B9XDo64SqcSkgwUTsh8gRiNSUdTzUg/kQTxgJFeML4p6r0HIhUV8b2eJsTjaBjTiGKkDfKrdVfRIUd+5vJATDKl09BwxEkOr+CcRWKS5xW/WrMb9kxw1TgLUwMLtf3qlxsKnHISa8yQUgPHTrSXIakpZiSvuKkiCcJjNCQDY4udystmF+XwzJAQRkKaF2s4o78nMsSVmvLAdHKkR2q5VsD/aoNUR5deRuMk1STG80VRyqAWsIgHhlQSrNnUGIQlNX+FeIQkwtqEWITgLJ+8arnDafZaN41a63rRxlcAJOQR04AK0wC1ogw7A4BE8g1fwZj1ZL9a79TFvLVmLmWPwR9bnD6fSnic=</latexit>πtitle,year
<latexit sha1_base64="+UwI3UaWiJx2IAujrYTGjcoCGzc=">ACHicbVC7TsMwFHV4lvIKMDJgUSExoCpBlWCsYGEsEn1ITRQ5rtNajZ3IdhBRlJGFX2FhACFWPoGNv8FJM0DLlSwdn3Pte/x45BKZVnfxtLyuraem2jvrm1vbNr7u3ZJQITLo4CiMx8JEkIeWkq6gKySAWBDE/JH1/el3o/XsiJI34nUpj4jI05jSgGClNeaRE1Mvc5gfPWSlPT+bXVKCRJ7XPbNhNa2y4CKwK9AVXU8sZRThCscIimHthUrN0NCUayn151EkhjhKRqToYcMSLdrFwkhyeaGcEgEvpwBUv2tyNDTMqU+bqTITWR81pB/qcNExVcuhnlcaIx7OHgiSEKoJFKnBEBcEqTDVAWFD9V4gnSCsdHZFCPb8yougd960W83WbavRvqriqIFDcAxOgQ0uQBvcgA7oAgwewTN4BW/Gk/FivBsfs9Ylo/IcgD9lfP4A9MuakQ=</latexit>πtitle,year(σlength≥100(movies) ∩ σstudioname=fox(movies))
expression trees
rename operator
, , … ,
ρS(A1,A2,…,An)(R) A1 A2 An
R ∩ S = R − (R − S) R ⋈C S = σC(R × S)
R = ∅ R R ⊆ S R, S
be in another relation
movie
MovieExec table?
key?
the same
ρMS1(name, address, gender, birthday(MovieStar) ρMS2(name, address, gender, birthday(MovieStar)
σMS1.name=MS2.name AND MS1.address≠MS2.address(MS1 × MS2) = ∅
president of a studio if the net worth exceeds US$10,000,000.00