在数据库设计过程中一般要遵循第一范式、第二范式、第三范式以及BCNF范式、第四范式。那么请你改正下面的数据库设计中的不足之处。
条件:设R(BOOK_ID,BOOK_NAME,AUTHOR,AGE)的属性分别表示为书号、书名、作者、和作者的年龄。如果约定:每一个书号对应一个书名:但不同的书号可以有相同的书名:每本书可以有多个作者合写:但每个作者参与编写的图书的书名应该互不相同。原来的数据库模型:
数据库表名:BOOK_INFORMATION
BOOK_IDBOOK_NAMEAUTHORAGE
1SQL SEEVER2000轻松进级Mike Gunderloy ; MaryChipman45 ; 38
2………
3………
a)你的设计模型:(列出数据表名、相应的字段名、约束)
b)从你设计的数据库总列出所有作者年龄大于40岁的图书名称
c)把一个书名为《精通SQL》的作者改为“Tom”
条件:设R(BOOK_ID,BOOK_NAME,AUTHOR,AGE)的属性分别表示为书号、书名、作者、和作者的年龄。如果约定:每一个书号对应一个书名:但不同的书号可以有相同的书名:每本书可以有多个作者合写:但每个作者参与编写的图书的书名应该互不相同。原来的数据库模型:
数据库表名:BOOK_INFORMATION
BOOK_IDBOOK_NAMEAUTHORAGE
1SQL SEEVER2000轻松进级Mike Gunderloy ; MaryChipman45 ; 38
2………
3………
a)你的设计模型:(列出数据表名、相应的字段名、约束)
b)从你设计的数据库总列出所有作者年龄大于40岁的图书名称
c)把一个书名为《精通SQL》的作者改为“Tom”
BOOK_ID
BOOK_NAM
BOOK_EAUTHOR
EAUTHOR_ID
EAUTHOR_Name
EAUTHOR_AGE
BOOK_INFORMATION_i
BOOK_ID
EAUTHOR_ID
select BOOK_NAM
from
BOOK_INFORMATION_i Book_i,
BOOK_INFORMATION Book
where Book_i.BOOK_ID not in(select Bi.BOOK_ID from BOOK_INFORMATION_i Bi,BOOK_EAUTHOR BE where Bi.EAUTHOR_ID=BE.EAUTHOR_ID and BE.EAUTHOR_AGE<=40)
and Book_i.BOOK_ID=Book.BOOK_IDc.
update BOOK_EAUTHOR set EAUTHOR_Name='Tom'
from BOOK_EAUTHOR BE,
BOOK_INFORMATION_i Bi,
BOOK_INFORMATION Book
where BE.EAUTHOR_ID=Bi.EAUTHOR_ID
and Book.BOOK_ID=Bi.BOOK_ID
and Book.BOOK_NAM='《精通SQL》'