- Banco de Dados RelacionalNormalização
- Banco de Dados RelacionalRestrições de Integridade
- SQLDDL
- SQLDML
1 CREATE TABLE candidato (
2 numero smallint NOT NULL,
3 nome character varying (40),
4 cargo smallint,
5 votos integer );
6 CREATE TABLE cargo (
7 pk_cargo smallint NOT NULL,
8 nome character varying (40));
9 CREATE TABLE voto (
10 pk bigint NOT NULL,
11 secao integer,
12 v_cargo smallint,
13 v_candidato integer);
14 INSERT INTO cargo (pk_cargo, nome) VALUES (1, 'Presidente');
15 INSERT INTO cargo (pk_cargo, nome) VALUES (2, 'Governador');
16 INSERT INTO cargo (pk_cargo, nome) VALUES (3, 'Prefeito');
17 INSERT INTO candidato (nome, numero, votos, cargo) VALUES ('Joao', 20, 100, 1);
18 INSERT INTO candidato (nome, numero, votos, cargo) VALUES ('Maria', 12, 10, 2);
19 INSERT INTO voto (secao, v_cargo, v_candidato, pk) VALUES (1, 1, 12, 1);
20 INSERT INTO voto (secao, v_cargo, v_candidato, pk) VALUES (1, 2, 20, 2);
21 INSERT INTO voto (secao, v_cargo, v_candidato, pk) VALUES (2, 2, 20, 2);
22 INSERT INTO voto (secao, v_cargo, v_candidato, pk) VALUES (2, null, 12, 4);
23 INSERT INTO voto (secao, v_cargo, v_candidato, pk) VALUES (1, 1, null, 5);
24 SELECT v.secao, c.nome FROM voto AS v, candidato AS c where c.numero = v.v_candidato ;
25 SELECT c.nome, count (*) FROM voto AS v INNER JOIN candidato AS c on c.numero = v.v_candidato
26 GROUP BY c.numero, c.nome;
27 SELECT c.numero, ca.nome, count (*)
28 FROM voto AS v INNER JOIN candidato AS c ON c.numero = v.v_candidato
29 INNER JOIN cargo AS ca ON v.v_cargo = ca.pk_cargo GROUP BY ca.nome, c.numero;
30 ALTER TABLE ONLY candidato ADD CONSTRAINT candidato_pk PRIMARY KEY (numero);
31 ALTER TABLE ONLY cargo ADD CONSTRAINT cargo_pk PRIMARY KEY (pk_cargo);
32 ALTER TABLE ONLY voto ADD CONSTRAINT voto_pk PRIMARY KEY (pk);
33 CREATE INDEX fki_candidato_cargo_fk On candidato (cargo);
34 ALTER TABLE ONLY candidato
35 ADD CONSTRAINT candidato_cargo_fk FOREIGN KEY (cargo) REFERENCES cargo (pk_cargo);
36 ALTER TABLE ONLY voto
37 ADD CONSTRAINT candidato_fk FOREIGN KEY (v_candidato) REFERENCES candidato (numero);
38 ALTER TABLE ONLY voto
39 ADD CONSTRAINT voto cargo fk FOREIGN KEY (v cargo) REFERENCES cargo (pk cargo);
Considerando que o código apresentado represente um script SQL sintaticamente correto, julgue os itens subseqüentes.
I Nas linhas de 1 a 13, encontram-se comandos de DML (data manipulation language), e, nas das linhas de 14 a 29, comandos de DDL (data definition language).
II Os comandos das linhas de 30 a 32 inserem restrições de integridade de entidade no modelo físico do banco de dados.
III Os comandos das linhas de 34 a 39 inserem restrições de integridade no modelo físico do banco de dados.
IV O modelo de dados criado pelo script encontra-se na terceira forma normal.
Estão certos apenas os itens