INTRODUCTION TO RELATIONAL DATABASE SYSTEMS
DATENBANKSYSTEME 1 (INF 3131)
Torsten Grust Universität Tübingen Winter 2019/20
1
INTRODUCTION TO RELATIONAL DATABASE SYSTEMS DATENBANKSYSTEME 1 (INF - - PowerPoint PPT Presentation
INTRODUCTION TO RELATIONAL DATABASE SYSTEMS DATENBANKSYSTEME 1 (INF 3131) Torsten Grust Universitt Tbingen Winter 2019/20 1 THE ENTITY-RELATIONSHIP MODEL The Entity-Relationship Model (ER model) has been defined to concisely describe
1
2
Sample ER Diagram
3
4
5
6
ER Diagram and Sample Instance
7
8
9
∀ 𝑓 ∊ 𝔽ℝ(𝑓₁): 𝑛₁ ⩽ | { (𝑦,𝑧) ∊ 𝔽ℝ(r) | 𝑦 = e } | ⩽ 𝑜₁ ∀ 𝑓 ∊ 𝔽ℝ(𝑓₂): 𝑛₂ ⩽ | { (𝑦,𝑧) ∊ 𝔽ℝ(r) | 𝑧 = e } | ⩽ 𝑜₂
10
11
─(𝑛₁,𝑜₁)─◇─(𝑛₂,𝑜₂)─ Relationship Category 𝑜₁ = 1, 𝑜₂ = 1
𝑜₁ = *, 𝑜₂ = 1
⚠ 𝑜₁ = 1, 𝑜₂ = * many-to-one (𝑂:1) ⚠ 𝑜₁ = *, 𝑜₂ = * many-to-many (𝑁:𝑂)
12
13
14
15
16
17
EER diagram example
18
EER diagram example (specialization hierarchy)
19
20
CREATE TABLE 𝑢 (…);
ALTER TABLE 𝑢 ADD COLUMN __id__ integer GENERATED ALWAYS AS IDENTITY; ALTER TABLE 𝑢 ADD PRIMARY KEY (__id__);
21
ALTER TABLE 𝑢₂ ADD COLUMN 𝑠 ‹type of 𝑙₁› NOT NULL; ALTER TABLE 𝑢₂ DROP CONSTRAINT 𝑢₂_pkey; -- ⯇─┬─ replace primary key ALTER TABLE 𝑢₂ ADD PRIMARY KEY (𝑠, 𝑙₂); -- ⯇─┘ of table 𝑢₂ ALTER TABLE 𝑢₂ ADD FOREIGN KEY (𝑠) REFERENCES 𝑢₁(𝑙₁) ON DELETE CASCADE;
22
ALTER TABLE 𝑢₂ ADD COLUMN 𝑠 ‹type of 𝑙₁› NOT NULL; -- ⯇─┬─ realize (1,_) card ALTER TABLE 𝑢₂ ADD COLUMN 𝘣 ‹type of 𝘣› NOT NULL; -- ⯇─┘ ALTER TABLE 𝑢₂ ADD FOREIGN KEY (𝑠) REFERENCES 𝑢₁(𝑙₁);
23
24
CREATE TABLE 𝑠 (𝑙₁ ‹type of 𝑙₁›, 𝑙₂ ‹type of 𝑙₂›, 𝘣 ‹type of 𝘣›); ALTER TABLE 𝑠 ADD PRIMARY KEY (𝑙₁, 𝑙₂); ALTER TABLE 𝑠 ADD FOREIGN KEY (𝑙₁) REFERENCES 𝑢₁(𝑙₁) ON DELETE CASCADE; ALTER TABLE 𝑠 ADD FOREIGN KEY (𝑙₂) REFERENCES 𝑢₂(𝑙₂) ON DELETE CASCADE;
25
26
ALTER TABLE 𝑢₁ ADD COLUMN 𝑠 ‹type of 𝑙₂› NOT NULL; ALTER TABLE 𝑢₁ ADD FOREIGN KEY (𝑠) REFERENCES 𝑢₂(𝑙₂); ALTER TABLE 𝑢₁ ADD UNIQUE (𝑠); -- ⚠ 𝑠 becomes candidate key in 𝑢₁ ALTER TABLE 𝑢₁ ADD COLUMN 𝘣 ‹type of 𝘣› NOT NULL;
27
28
29
CREATE TABLE 𝑢₁ (…); CREATE TABLE 𝑢₂ (…) INHERITS (𝑢₁); CREATE TABLE 𝑢₃ (…) INHERITS (𝑢₁);
30
CREATE TABLE 𝑡(…) [ INHERITS (𝑢₁ [, …]) ]
31
𝑢₁₃ 𝑙₁ 𝘣 𝑑 𝑢₂ is_a → 𝑢₁₃(𝑙₁) ON DELETE CASCADE 𝑐
32
33