【发布时间】:2018-07-01 21:15:20
【问题描述】:
有以下表格
CREATE TABLE venues(
id serial PRIMARY KEY,
NAME TEXT,
address TEXT
);
CREATE TABLE movies(
id serial PRIMARY KEY,
title TEXT,
YEAR INT);
CREATE TABLE genres(
id serial PRIMARY KEY,
NAME TEXT,
description TEXT
);
CREATE TABLE movies_genres(
movie_id INT REFERENCES movies(id),
genre_id INT REFERENCES genres(id)
);
CREATE TABLE actors(
id serial PRIMARY KEY,
NAME TEXT
);
CREATE TABLE movies_actors(
movie_id INT REFERENCES movies(id),
actor_id INT REFERENCES actors(id)
);
CREATE TABLE screenings(
id serial PRIMARY KEY,
venue_id INT REFERENCES venues(id),
movie_id INT REFERENCES movies(id),
DATE TEXT,
TIME TEXT
);
CREATE TABLE sold_tickets(
screening_id INT REFERENCES screenings(id),
ROW INT NOT NULL,
seat INT NOT NULL,
unique(screening_id, ROW, seat)
);
- 用 PostgreSQL 的语法编写,如何通过识别函数依赖关系来证明这个数据库是第三范式 (3NF)? X -> Y
我在想也许一种顺序证明数据库处于 1NF、2NF、3NF 的方法会很好,但是我不确定这些函数依赖关系在这些表上会是什么样子。
谢谢
【问题讨论】:
-
“我在想也许一种顺序证明数据库处于 1NF,然后是 2NF,然后是 3NF 的方法会很好......”不,你只有要做的是证明每个关系(每个表)都在 3NF 中。根据定义,在 3NF 中的任何关系也同时在 2NF 和 1NF 中。
标签: sql database functional-programming dependencies 3nf