forked from viniciuslacerda0/projetoBD
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbdAlt.sql
More file actions
126 lines (107 loc) · 3.01 KB
/
bdAlt.sql
File metadata and controls
126 lines (107 loc) · 3.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
--entidade regular: regra 1--
CREATE TABLE cliente (
cpf CHAR(11),
nome VARCHAR(50) NOT NULL,
sexo CHAR(1),
endereco VARCHAR(100) NOT NULL,
email VARCHAR(50) NOT NULL,
data_nascimento DATE NOT NULL,
PRIMARY KEY (cpf)
);
-- atributo multivalorado: regra 6 --
CREATE TABLE tel_cliente (
telefone VARCHAR(20),
cpf_cliente CHAR(11),
PRIMARY KEY (telefone, cpf_cliente),
FOREIGN KEY (cpf_cliente) REFERENCES cliente(cpf)
);
--- entidade fraca ---
CREATE TABLE dependente (
cpf_dependente CHAR(11),
cpf_cliente CHAR(11),
data_nascimento DATE,
nome VARCHAR(50) NOT NULL,
PRIMARY KEY (cpf_dependente,cpf_cliente),
FOREIGN KEY(cpf_cliente) REFERENCES cliente(cpf)
);
--entidade regular: regra 1--
CREATE TABLE avaliacao (
id INT,
nota FLOAT NOT NULL,
dt_avaliacao DATE NOT NULL,
comentario VARCHAR(255),
cpf_cliente CHAR(11),
PRIMARY KEY(id)
);
--relacionamento 1..1: regra 3
ALTER TABLE cliente
ADD id_aval INT
ADD CONSTRAINT id_aval_fk FOREIGN KEY (id_aval) REFERENCES avaliacao(id);
--entidade regular: regra 1--
CREATE TABLE quarto (
numero INT,
tipo VARCHAR(50) NOT NULL,
vista VARCHAR(50),
valor_diaria FLOAT NOT NULL,
PRIMARY KEY (numero)
);
--atributo multivalorado: regra 6--
CREATE TABLE equipamento (
id INT,
equip VARCHAR(25) NOT NULL,
numero_quarto INT,
PRIMARY KEY (id,numero_quarto),
FOREIGN KEY (numero_quarto) REFERENCES quarto(numero)
);
--relacionamento m..n: regra 5--
CREATE TABLE hospeda_quarto (
dia_checkin DATE NOT NULL,
dia_checkout DATE NOT NULL,
cpf_cliente CHAR(11),
numero_quarto INT,
PRIMARY KEY (cpf_cliente, numero_quarto),
FOREIGN KEY (cpf_cliente) REFERENCES cliente(cpf),
FOREIGN KEY (numero_quarto) REFERENCES quarto(numero)
);
--relacionamento 1..N: regra 4--
ALTER TABLE quarto
ADD cpf_cliente CHAR(11) NOT NULL
ADD dia_checkin DATE NOT NULL
ADD dia_checkout DATE NOT NULL
ADD CONSTRAINT cpf_cliente_fk
FOREIGN KEY(cpf_cliente) REFERENCES cliente(cpf);
--entidade regular: regra 1--
CREATE TABLE funcionario (
cpf CHAR(11),
nome VARCHAR(50) NOT NULL,
data_nascimento DATE NOT NULL,
salario FLOAT NOT NULL,
funcao VARCHAR(20) NOT NULL,
PRIMARY KEY (cpf)
);
--entidade regular: regra 1--
CREATE TABLE produto (
id INT,
nome VARCHAR(50) NOT NULL,
tipo VARCHAR(50) NOT NULL,
descricao VARCHAR(255),
valor INT NOT NULL,
PRIMARY KEY(id)
);
--relacionamento m..n: regra 5--
CREATE TABLE vende_produto (
data_venda DATE NOT NULL,
quantidade INT NOT NULL,
numero_quarto INT,
id_produto INT,
PRIMARY KEY (numero_quarto,id_produto),
FOREIGN KEY (numero_quarto) REFERENCES quarto(numero),
FOREIGN KEY (id_produto) REFERENCES produto(id)
);
--relacionamento 1..N: regra 4--
ALTER TABLE quarto
ADD cpf_func CHAR(11)
ADD data_manutencao DATE NOT NULL
ADD tipo_manutencao VARCHAR(50) NOT NULL
ADD observacao_manutencao VARCHAR(50)
ADD CONSTRAINT cpf_func_fk FOREIGN KEY(cpf_func) REFERENCES funcionario(cpf)