大数据库期末重要题型总结材料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题型:
1 E-R图/文字描述/伪代码(实体-属性)/真实代码(create table)
2关系代数表达式书写,画自然连接表格
3 select语句书写(3部分)
题型一 E-R图
问题2[12标记〕:考虑下图描述的发票(发票)数据库的ER图。
(1)给出的从ER图的要求和约束的精确说明。 [5商标〕
(2)转换图转换成关系模式,通过提供相应的CREATE TABLE语句。指定所有键
和外键约束。
Question 2 [12 marks]: Consider the following figure that describes the CM
E-R diagram of an invoice(发票) database.
(1) Give a precise specification of the requirements and constraints from
the E-R diagram. [5
marks]
(2) Translate the diagram into relational model by supplying the
appropriate CREATE TABLE statements. Specify all the key and foreign key
constraints.
[7 marks]
矩形:实体。多个实体的集合是实体集。椭圆形:属性(带有下划线是主码)。
菱形:联系集。有箭头的一方是“一”,没有箭头是“多”,从有箭头的开始分析:
A(有箭头)对B,一个A对多个B,一个B只有一个A。
联系集有没有属性跟要不要描述联系集是没有关系的!但是一般没有属性就不写,
有属性就写。联系集有写时,实体集不需要写上对方的主码,有属性的联系集,
多对多或多对一时,两边的实体集的主码都作为外码写进此联系集。一对一时,
任选一个实体集的主码;没写时,实体集多的一方要写上一的一方的主码,如果
联系集有属性,还要把属性写到多的一方。
。
[7商标〕
Question 2 [12 marks]: 化E-R 图为文字描述
1分别写每个主体集的主体名和属性以及主码(带下划线的)
2根据是否有箭头和箭头方向描述主体间的关系
3联系集的属性描述
An invoice has attributes: Invoice#(primary key), TotalOrderAmt, Date,
Terms, ShipVia. A customer has attributes: Cust#(primary key), CName,
Street, City, State, Zip, Phone. A product has attributes:
Prod#(primary key), StandardPrice, Description. The relationship
between invoice and customer is many-to-one. One invoice can relate
to only one customer, while one customer can relate to any number of
invoices. The relationship between invoice and product is many-to-many.
Any number of products can be placed in one invoice, and one product
can appear in different invoices. The relationship between invoice and
product has two attributes: SellPrice and Quantity.
发票有属性:发票#(主键),TotalOrderAmt ,日期,条款,SHIPVIA 。一位
顾客有属性:卡斯特#(主键),CNAME ,街道,城市,州,邮编,。一个产品
有属性:PROD #(主键),标准价格,说明。发票和顾客之间的关系是多对1。
一发票可以涉及仅一个客户,而一个客户可以涉及任何数量的发票。发票和
产品之间的关系是许多对多。
任何数量的产品可以被放置在一发票,和一个CM
产品可以出现在不同的发票。发票和产品之间的关系有两个属性:SellPrice 和数量。
化E-R为代码
1除了日期是date类型,其他都可以用varchar(20),类型写在后
2 #叫_Number
3注意格式,括号,逗号
4主码一定要前面罗列一次,后面再总结是主码一次。外码也是。有一种情况是描述联系集时,来自两个实体集的主码同时也是外码。
(2) create table Invoice
(Invoice_Number char(10),
TotalOrderAmt integer,
Invoice_Date date,
Terms char(30),
ShipVia char(20),
Cust_Number char(10),(对方的主码——外码)
Primary key(Invoice_Number),(主码描述)
Foreign key(Cust_Number) references Customer)(外码描述)
Create table Customer
(Cust_Number char(10),
CName char(10),
Street char(30),
City char(10),
State char(10),
Zip char(10),
Phone char(20),
Primary key(Cust_Number))