南开大学数据库复习笔记_第1页
南开大学数据库复习笔记_第2页
南开大学数据库复习笔记_第3页
南开大学数据库复习笔记_第4页
南开大学数据库复习笔记_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章

1.元组tuple:数据表中的行;属性attribute:数据表中的列;模式schema:

装配数据的框架,数据表各个列的名字的集合(id,姓名,年龄,性别,专业);

数据库的模式:关系模式的集合

AnExampleofaRelationSchemas

TheSchem^ofaRelation:

-Rttabonnom*pluiottrftxjtenamm

-EQ.Produrt(Nam«.Price.Category.Manutacturcr)

-Inpracticewcaddthedomainforeachattribute

-E.g.Product(NameAtrinaPrkerwlCatc^ofyAtrina,

Manufactureritrina)

TheSchemaofaDatabase

-AsetofrelationKhamcn

-Eg.Product(Nanw.Prke.Cateoory,Manufacturef).

Vondof(Name.Address.Phone).

ruptet

2.三层架构

(1)最底层physicallevel:物理模式、内模式、存储模式;按照数据模型将

数据存储到磁盘中

(2)中间层logicallevel:模式、逻辑模式;schema;将用户给出的模式信

息存储到数据库中

(3)最上层viewlevel:外模式、子模式、用户模式;优点:限制表中特定列

和行的使用,隐藏复杂查询的细节,提供安全保证

3,数据库的最小存取单位是数据项

1.关系模式:表名(属性名,有时在属性名后会加上该属性的数据类型如String、

Interger等),employee(empno,empname,deptno)

2.(1)Superkey(超键,超码):数据表里一组属性的集合,每一行记录在这

几个属性上的值是唯一的

(2)candidateKey(候选键,候选码):最小的超键(其中属性数最少)

(3)primaryKey(主键、主码):数据库管理员DBA选择的一个候选键,在模

式中会用下划线标注workson(empno,projectno,job,enterday)

(4)外键必须是另一个表的主键

3.实体完整性:主键不能为空不能重复;参照完整性:外键如果取值一定要取

主键中出现的值

4.数据块、数据页

SQLServer的数据页

•数据页是8K.包括三部分:页生磐援行和什鱼费数组

•页头96个字节

-pagelD.nextpage.prevpage.objID.kn.slotCnt.level.

indexID.freeData.pminlen^

・数据行,最大长度8060个字节

-数据行不能跻贞存牝

・行偏移数组,每行2个字节

・DBCCPAGE

1.稠密索引:包括key和指针,对每个key值都建立索引,索引一定是按key

值排序的

DenseIndex(稠密索引)

2.稀疏索引:为每个数据块只建立一个key值

3.为索引建立索引(一级、二级索弓])

4.(1)searchKey:找学号是1001的学生,1001就是searchKey

(2)primaryindex:主索引,索引key值的指针直接指向目标的记录快

(3)secondaryindex:辅助索引,已经对某一key值构建索引,还想对其他key

值构建索引,后者就是辅助索引,二级索引不叫secondaryindex

5.数据库中有重复出现的值时如何构建索引

(1)构建稠密索引,对所有重复的值都构建索引

(2)构建稀疏索引(两种方法)

8

1

1

=

0O

0E

J一s

二O

JZ

X2S

B

6.有索引时删除插入记录

(1)稠密索引:

7.插入:无空间时做一个溢出链,当溢出链很长时,定期重组

8.辅助索引:在没有排序的另一个属性上(不是主键)构建索引,第一级索引

是稠密索引,第二级索引可以是稀疏索引

(1)问题:重复数据耗费空间一一构建指针桶

9.磁盘结构与访问特征(1)B+树:最下层是主索引

(2)哈希结构:底层存储实现方式有两种

桶满之后使用溢出链

TwoalternativesTHQalternatives

record

keyth(kcy)key->h(key)

,fora、ccofidaryindex

•toimplementaprimaryindex

10.总结

本周课程总结

Howtofindarecordquickly?

本同课

♦磁盘的结构与访问特征

♦Conventionalindexes(sparse,dense.Primary

index.Secondaryindex)

♦B+Trees(B+treerules,Insertion,Deletion)

♦Hashingschemes

第二章

四、

1.学生实体集合(椭圆:属性;方块:实体集合)

Example

EntitysetStudentshastwoattributes,nameandSID(student

ID).

EachStudententityhasvaluesforthesetwoattributes,e.g.

(张.20191234)

2.ER图(椭圆:属性;方块:实体集合;菱形:实体间的关系)

3.一对一,多对一,多对多;圆箭头:从左向右有且只有一个,去除零的情况;

尖箭头:小于等于一,可以为零

MultiplicityofE/RRelationsExample

,ConsiderBestsellerbetweenManfsand

Beers.

•Somebeersarenotthebest-sellerofany

manufacturer,soaroundedarrowtoManfs

wouldbeinappropriate.

,Butamanufacturerhastohaveabest-sellef

(weassumetheyarebeermanufacturers).

4.多路联系

5.子类(用三角形isa表示),ER图不能多重继承,但是一个实体可以属于多

个子类

6.总结

Relationships:Summary

•RelationMultiplicity

-many-om,on«-on«,many-many

•MultiwayRelationships

-Convertingamultiwayon«intomanybinaryon«t

•RolesinRelationships

•AttributesonRelationships

•Subclasses

M

0aMM(1**(*0

五、

1.参照完整性约束、域(字段的取值范围)约束、其他约束

ModelingConstraints

Findingconstraintsispanofthemoddingprocess.

Commoalyusedcomtnints

Keys;socialsecuritynumberuniquelyidentifksapenon.

Referentialmicgnfyccnstnunts:ifyouworkforacompany,it

mustexistinIhedatabase.

Docnaincomtraiati:peoples'agesarcbetween0and200.

Oeoeralcomtrainu:allothers(almost#studentsenrollmaclass)

2.键:有一个或多个属性构成,要求当前实体集合里没有任何两个实体在这些

键对应的属性上完全一致,用键可以对实体集合里的每一个实体进行唯一性的标

识,在ER图中用下划线标识;一个实体集合可以有很多键,其中一个被设计为

主键

在子类的层次结构中,只需要为根节点设置键,该键必须为这个层次结构里所

有的实体服务

KeysinE/RDiagrams

•Underlinethekeyattribute(s).

,InanIsahierarchy,onlytheroo^entitysethas

akey,anditmustserveasthekeyforall

entitiesinthehierarchy.

Example:

nameisKey

torBeers

3.弱实体集合(双边矩形表示,双边菱形是为了表示对弱实体集合进行唯一性

识别是支持联系,沿着双边菱形的联系可以拿到另一个实体的键属性对弱实体集

合进行唯一性识别,不是所有和弱实体集合连接的菱形都是双边菱形)

(1)弱实体集合的属性都不能对它进行唯一性识别,需要沿着从这个实体集合

出发的一个或多个多对一联系找到另一个实体集合,将另一个实体集合的属性包

含进来对当前的弱实体集合进行唯一形识别

(2)弱实体集合的键是他自己的有下划线的属性和他的支持实体集合的键

•Occasionally,entitiesofanentitysetneed

*helpwtoidentifythemuniquely.

•EntitysetEissaidtobeweakifinorderto

identifyentitiesofEuniquely,weneedto

followoneormoremany-onerelationships

fromEandincludethekeyoftherelated

entitiesfromtheconnectedentitysets.

4.ER模型设计

(1)忠实(2)避免冗余(3)能用属性的时候不要用实体集合,尽量少用弱实

体集合

(4)必须用实体集合不能用属性的情况:有至少一个非键属性或在某一个多对

一或多对多关系中是多端

5.关系型数据模型

将ER图转化为关系模型:(1)为每个实体创造一张表;(2)为每个关系创造

一张表:关系的属性+关联的实体的键,当一个实体集合在一个联系中出现多次

时要在这个联系表中多写几次该实体集合的键(图2)

TranslatingERDiagramtoRcl.DesignRelationshiptoRelation:AnotherExample

•Basiccases

-entitysetE>relationwithattributesofE

-rdatiomhipR-relationwithattribute!being

ofrelatedentitywb♦attributesofR

•Specialcases

-combiningtworalotiom

-tromlotinguzcofoentityMb

-tromlotingi»-arelotionthipi

w

1.关系模型转换特殊情况

(1)表的合并:多对一的联系可能和多段的实体集合进行合并,联系不需要单

独创造表,但不能和一端进行合并,合并多对多联系有风险

合并方法:多端的实体集合的表加上一端的键属性加上联系的属性

CombiningRelations

ItisOKandmoreefficienttocombinetherelationforan

entitysetEwiththerelationRforamany-one

relationshipfroryEtoanotherentityset.

Example:Drinkers(name.addr)andFavorite(drinker,

beer)combinetomakeDrinker1(name,addr,

favoriteBeer).

(2)弱实体集合

弱实体集合的表:弱实体集合属性+支持实体集合的键属性

弱实体集合关系的转化:不需要为支持联系单独创建一张表,原因见图2

(3)子类实体集合的转化

方法一:面向对象/00方法,图1中结构可以表示四张表,每个包含根节点的子

树都可以转化出一张表,把这棵子树里所有的属性都放到表中

方法二:E/R方法,图2,为每一个实体集合生成一张表,一个实体的信息可能

分布在多张表中(子类实体集合转化时:该子类实体集合属性+根节点键属性)

方法三:图3,使用空值的方法,只有一张表,所有属性都在这张表里,有的位

置用空值填充

2.完整性约束

(1)实体完整性:主键中的属性不能为空不能重复

(2)参照完整性:外键或取参照关系中的某个主键值或取空值(表示还未分配)

(3)用户定义完整性:针对某一具体数据库的约束条件,反应某一具体应用所

设计的数据必须满足的语义要求

七、*

1.DDL:数据定义语言;DML:数据操作语言

DDL-DataDeGnitionLanguage

DML-DataManipulationLanguage

CREATE⑴Table-definetablename,attributes,typesInsert-Addasinglerow

(2)View-dofmeuserv>®wofdata

(3)Index-createindexonnommetedattributesDelete-Deleterowsofdatafromatable

DROP(1)Table•deletetable,attributesandvalues

Update-Amendattributevaluesinrows

(2)View-deleteuserv)ew(s)

(3)Index-deloteindex.mdoxe«

Select-From-Where-Querydata

SomeDBMShaveanALTERcommandtovaryattnbutecharacteristic*

2.numeric(p,d)p-d.d44.5J444.5X0.32X

BasicTypes

•char(o)/character(n)

•varchar(n)/charctervarying5

•int/int«ger3।

:震工—用■•■■y■

•real.doubleprecision«_■«.二5

3.(1)drop:删除表;deletefrom:清空表但保留表结构;改变属性列:图1

ChangingColumns

Add/DropanattributeofrelationRwith

ALTERTABLE/?ADD/DROP〈column〉;

ALTERTABLEBarsADDphoneCHAR(16)

DEFAULT'unlisted';

ALTERTABLEBarsDROPCOLUMNlicense;

(2)声明属性:图1用于只有一个属性时,多个属性需要独立于属性声明(图

2、3),但也可以用于一个属性的声明

图2中两种声明方法不同,第一种上面三行允许,第二种上面三行不允许

声明为unique可以为空,但只能有一个为空,声明为primarykey不能为空

DeclaringSingle-AttributeKeysDeclaringKeys:Example

(\CREATETABLESells(

・PkK«PRIMARYKEVorUNIQUEafterth«typ«in怛jCHAR(20),

thededarationoftheattributebeerVARCHAR(20),

•Exampl*'pnaeREAL,

\UNTQUE(6aGbeert);

CREATETABLEBeers(

isdifferentfrohn-—

nameCHAR(20)UNIQUE,

CREATETABLESells(

manfCHAR(20)

bar^CHAR(20^UNIQUE,

beerVARCHAR(20)UNIQUE,

priceREAL);

声明外键图4、5

非空、设置默认值图6

Example:MultiattributeKey

•Th*barandb««ftogetherareth*brayforS«lk

CREATETABLESells(

barCHAR(20),

boorVARCHAR(20),

priesREAL,

PRIMARYKEY(bar,boor)

Example:AsElement

CREATETABLEBeers(

CREATETABLESells(

nameCHAR(20)PRIMARYKEY,

manf-CHAR(20)D-barCHAR(20),

beerVARCHAR(20)DEFAULT'HouseBeef,

«而NOTNULL,

CREATETABLESells(A"TKIRARYKEY(bad

8rCHAR(20),);

beerCHAR(20),UMTtlot*

priceREAL,valaM

wUct,MUSI

FOREIGNKEY(boor)REFERENCES

Beers(name));insertiqto$ell$(bar)

values量3);

4.有外键时要对外键参照的键的值进行修改或删除

(1)默认方式default:拒绝修改

(2)级联处理cascade:更新时在有外键的表中进行同样的操作,删除时在有

外键的表中删除相应的元组。图3级联删除,图4级联更新

(3)设为空值setNULL:更新被参照的表的主键时,将有外键的表中被影响的

值设为空值。图5

ActionsTaken

Thethreepossiblewaystohandlebeen

thatsuddenlyceasetoexistare:

1’Refectthemodification.

MakethesamechangesinSens

□Deletedbwr^deleteSelhtuple.

□UpdatedbyrchangevaluemSeiis.

ChangethebeertoNULLinSeito

Example:Cascade

BudweiserAnheuwr-BuKh

BeenSelb

CK£A?BTABLESalla(

b«rciuutiaoi,

t9««rCKMt(20),

pr$eMAL.

roaeiOHKCir<t>e«t)rannKNCuBe«r*tM

oavrmraciuKAPtit

Example:SetNULL

OtMT*TABUS«U»(

b«rCHAR(30).

bMrCNMt(20).

P*ic«MAL,

ronzxSNKZY(bMr>»xrau»CE3Be«ra(M*e)

anUPWTKss:mnx);

(4)非空、设置默认值

5.Check约束

图中check约束只会在sells表发生元组插入更新时检查,beer表中元组插入

更新时不会检查,约束强度比外键弱

图2中最后一行◊表示不是(不等于)

AttributebasedCheck:ExampleTupleBasedCheck:Example

CREATETABLESells(OnlyJoe'sBarcansellbeerformorethan$5.

barCHAR(20),CREATETABLESells(

beerCHAR(20)CHECK(beerIN

barCHAR(20)r

(SELECTnameFROMBeers)),beerCHAR(20)

priceREALCHECK(price<=5.00));r

priceREAL,

Checkonbeerislikeaforeign-keyconstraint,CHECK(bar='Joe"sBar'OR

except:price<=5.00));

Checkoccursonlywhenthe'beer'attributeof;

a'Sells'tupleisinsertedorupdated.ALTERTABLESells^DDCHECK(...)

Notwhena'Beers,tupleisdeletedorupdated.

ALTERTABLESdkADDCHECK(bar-'Jo®^Bar1orbeer<>'Mille/);

6.实例

createtableBecrs(

namevarchar(20)primarykey,

manfvarchar("))nolnuTTJ:-

createlatieBars(

namechar(20)primarykey,

addrvarchar(40)nolnull,

licenseintnotnull);

createtableDrinkers(

namechar(10)primarykey,

addrvarchar(40),

phonechart8));

Mysql中声明外键需要显式声明

八、

1.union:并集;intersection:交集;except:差集

2.(1)Aggregations

(2)groupby:分组运算在关系的积运算和投影运算之后进行,如果groupby

属性上存在空值则空值单独作为一个分组存在(图2、3)

Grouping

(na*bvtQgmj

yotiptwprojxtwni

TH1Ass

VXM*bvWbl

(3)having子句:所有聚集属性(count,avg等)都可以在having子句中出

现,但只有groupby子句中的属性可以在having子句中以不聚集的形式出现,

如图4倒数第三行的beer

SELECTListsWithAggregationHAVINGclause

Sells(bar,beer,price)•HAVINGdausesareselectionsongroups

•PossibleQuerytofindthebarthatsellsBudthebwioirrnanf);S«n$(b4Lbw,pr»c«)

cheapest:

•Findtheavcragepric*ofthosebeenthatareether

SELECTservedinatleast3bootormanufacturedbyBusch.

b»i

FROMpHc*priw

WHERE0.SELECTbw,AVG(pric«)

whmtw%ud、FROMS^ls

•Illegal.Why?

GROUPS

•Rule:Eacheiem6)t卜aSELECT

clausemustHAVING-^OUNT(,)>•3OR

eitherbeaggregatedorappearinagroup-by♦嬴rIN(SELECTnamt

dause.

Problem:Howwoutdwefindthotbor,__________WHEREmanf-Bg1一二

3.(1)修改数据:图1、2(2)断言:图3、4,与创建表时的check不同,每

当表发生改变时都会检查,能永远保证断言中的条件为真(3)触发器:图5、6、

7,插入事件时只能使用NEW(图6IF后面和value括号里),删除事件只能使

用OLD(图7)

DBModificationsUpdates

•Modifkaboninsert,ddrte,CMupdateUPDATEfetationSETjmgnmentsWHEREcondition:

ExampleDnnkers(nimeaddr,phone)

Syntax(

•INSERTINTOrelattonVALUES(fato<va»ue>);•DrinkerFred'sphonenumberis555-1212.

•INSERTINTOreUtion生ubqugfy);UPDATEpnnkers.

•DELETEFROMWHERE_condrtion;-SELfihfine."JS55<j2U'

•UPDATE后诉"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论