MYSQL网站制作之数据库进修条记(四)
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。条记|数据|数据库干系数据库
六,干系代数
干系代数是一种笼统的查询言语,是干系数据利用言语的一种传统表达体例,它是用对干系的运算来表达查询的。
1,传统的汇合运算
并(union),差(difference),交(intersection),狭义笛卡儿(extendedCartesianproduct)
2,专门的干系运算
划定的几个暗号。
⑴设干系形式为R(A1,A2,…,AN)。它的一个干系设为R。t∈R暗示t是R的一个元组。t则暗示元组t中响应于属性Ai上的一个份量。
⑵若A={Ai1,Ai2,…,Aik},个中Ai1,Ai2,…,Aik是A1,A2,…,AN中的一部分,则A称为属性列或域列。t=(t,t,…,t)暗示元组t在属性列A上诸份量的汇合。则暗示(A1,A2,…,AN)中往失落{Ai1,Ai2,…,Aik}后残剩的属性组。
⑶R为n目干系,S为m目干系。tr∈R,ts∈S,trts称为元组的毗连。它是一个n+m列的元组,前n个份量为R中的一个n元组,后m个份量为S中的一个m元组。
⑷给定一个干系R(X,Z),X和Z为属性组。界说当t=x时,x在R中的象集为:
Zx={t|t∈R,t=x}
3,上面给出干系运算的界说:
1.选择(Selection)
σF(R)={t|t∈R∧F(t)=’真’}
从干系R当选取使逻辑表达式F为真的元组。这是从行的角度举行的运算。
2.投影(Projection)
干系R上的投影使从R当选择出多少属性列构成新的干系。记做:
πA(R)={t|t∈R}
投影以后不但作废了原干系中的某些列,并且还大概作废某些元组,由于作废了某些属性列后,便可能呈现反复行,应作废这些完整不异的行。
3.毗连(Join)
毗连也称为毗连。它是从两个干系的笛卡儿积当选取属性间满意必定前提的元组。
毗连运算中由两种经常使用的毗连,一种是等值毗连,一种是天然毗连。
1,为“=”的毗连运算称为等值毗连。它是从干系R与S的狭义笛卡儿积当选取A,B属性值相称的那些元组,集等值毗连为:
2,天然毗连是一种特别的等值毗连,它请求两个干系中举行对照的份量必需是不异的属性组,而且在了局中把反复的属性列往失落。
4.除(Division)
给定干系R(X,Y)和S(Y,Z),个中X,Y,Z为属性组。R中的Y与S中的Y能够有分歧的属性名,但必需出自不异的域集。R与S的除运算失掉一个新的干系P(X),P是R中满意以下前提的元组在X属性列上的投影,元组在X上份量值x的象集Yx包括S在Y上投影的汇合。除操纵是同时从行和列的角度举行运算。
七,干系演算
1,元素干系演算言语ALPHA:
ALPHA言语次要有GET、PUT、HOLD、UPDATE、DELETE、DROP六条语句,语句的基础格局是:
操纵语句 事情空间名(表达式): 操纵前提
表达式用于指定语句的操纵工具,它能够是干系名或属性名,一条语句能够同时操纵多个干系或多个属性。操纵前提是一个逻辑表达式,用于将操纵工具限制在满意前提的元组中,操纵前提能够为空。
1,GET检索操纵
2,UPDATE更新操纵,步骤以下:
・起首用HOLD语句将要修正的元组从数据库中读到事情空间中
・然后用宿主言语修正事情空间中元组的属性
・最初用UPDATE语句将修正后的元组送回数据库中
3,PUT拔出操纵,步骤以下:
・起首用宿主言语在事情空间中创建新元组
・然后用PUT语句把该元组存进指定的干系中
4,HOLD带着并发把持的GET语句
5,DELETE删除操纵
・用HOLD语句把要删除的元组从数据库中读到事情空间中
・用DELETE语句删除该元组
2,域干系演算QBE(QueryByExample)
最凸起的特性是它的操纵体例。它是一种高度非历程化的基于屏幕表格的查询言语,用户经由过程终端屏幕编纂程序以填写表格的体例机关查询请求,而查询了局也是以表格情势显现,因而十分直不雅,易学易用。
八,干系数据库办理体系:
干系数据库办理体系简称为干系体系,是指撑持干系模子的体系。一个数据库办理体系可界说为干系体系,当且仅当它最少撑持:
1,干系数据库(即干系数据布局)。也就是说,从用户概念看,数据库是由表组成的,而且体系中只要表这类布局。
2,撑持选择、投影和(天然)毗连运算。对这些运算不请求用户界说任何物理存取路径。
依照E.F.Codd的头脑,根据干系体系撑持干系模子的水平分歧,能够把干系体系分为四类:
1,表式体系。
这类体系仅撑持干系数据布局(即表),不撑持汇合级的操纵。表式体系实践上不克不及算干系体系。倒排表列(Invertedlist)体系就属于这一类。
2,(最小)干系体系。
即下面界说的干系体系,它撑持干系数据布局和选择、投影、毗连三种干系操纵。很多微构造系体系如FoxBASE、FoxPro等就属于这一类。
3,干系上完整的体系。
这类体系撑持干系数据布局和一切的干系代数操纵(功效上与干系代数等价)。今朝很多中年夜型干系体系如DB2、ORACLE等就属于这一类。
4,全干系体系。
这类体系撑持干系模子的一切特性,出格是数据布局中域的观点,实体完全性和参照完全性。固然DB2、ORACLE等体系已靠近这个方针,但到今朝为止尚没有一个体系是全干系体系。
只管分歧的干系体系对干系模子的撑持水平分歧,但它们的系统布局都切合三级形式布局,供应了形式、外形式、内形式和形式与外形式之间的映象、形式与内形式之间的映象。表就是干系体系的形式,在表下面能够界说视图,这就是干系体系的外形式,干系体系一般都供应了界说视图即外形式的语句。内形式则是实践存储在磁盘或磁带上的文件。
未完待续。
小康
Xiaokang1949@hotmail.com
2004-2-29
平台即服务PaaS、基础设施即服务IaaS、软件即服务SaaS都是我们比较熟悉的MySQL学习教程,现在又出现了数据库即服务DBaaS,以基于云的方式存储结构化数据。 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。 从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 入门没那么困难,精通没那么容易 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
页:
[1]