干系数据库实际知识
mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。1.干系的基础观点(1)干系:一个干系就是一张二维表,一般将一个没有反复行、反复列的二维表当作一个干系,每一个干系都有一个干系名。
(2)元组:二维表的每行在干系中称为元组,即行,又称“纪录”(Record)。
(3)属性:二维表的每列在干系中称为属性,即列,又称“字段”(Field)。
(4)域(Domain):属性的取值局限称为域。
(5)关头字(Key):干系中能独一辨别、断定分歧元组的属性或属性组合,称为该干系的一个关头字。单个属性构成的关头字称为单关头字,多个属性组合的关头字称为组合关头字。必要夸大的是,关头字的属性值不克不及取“空值”。比方“先生基础情形表”中的“学号”属性能够作为单关头字,由于没有两个先生的学号是反复的。
(6)候选关头字(CandidateKey):干系中可以成为关头字的属性或属性组合大概不是唯一的。凡在干系中可以独一辨别、断定分歧元组的属性或属性组合,称为候选关头字。
(7)主关头字(PrimaryKey):在候选关头字当选定一个作为关头字,称为该干系的主关头字。干系中主关头字是独一的。
(8)内部关头字(ForeignKey):干系中某个属性或属性组兼并非关头字,但倒是另外一个干系的主关头字,称此属性或属性组合为本干系的内部关头字。干系之间的接洽是经由过程内部关头字完成的。
(9)干系形式:对干系的形貌称为干系形式,其格局为:干系名(属性名1,属性名2,…,属性名n)
比方:教员选课表(序号,课程号,课程名,上课班级,人数,种别,学分,起止周,课堂)
课程基础信息表(课程号,课程名)
2.干系数据库的观点
以干系模子创建的数据库就是干系数据库(RelationalDataBase,RDB),干系数据库体系的DBMS是干系型数据库办理体系(RelationalDataBaseManagementSystem,RDBMS)。干系数据库中包括多少个干系,每一个干系都由干系形式断定,每一个干系形式包括多少个属性和属性对应的域,以是,界说干系数据库就是一一界说干系形式,对每干系形式一一界说属性及其对应的域。
3.干系完全性
干系完全性是为包管数据库中数据的准确性和相容性,对干系模子提出的某种束缚前提或划定规矩。完全性一般包含实体完全性、参照完全性和用户界说完全性(又称域完全性),个中实体完全性和参照完全性,是干系模子必需满意的完全性束缚前提。
4.干系标准化实际和范式(NormalForm,NF)
(1)案例:怎样存储雇员和和发卖数据案例:怎样存储雇员和和发卖数据
数据库计划1:
Relation0(employeeID,employeename,employeeage,employeegender,employeeaddress,city,sales)
#ID
Sales($)
City
Addr.
SexAge
Name
Relation0
E-R图(Entity-RelationMap,实体干系图)
数据库计划2:
课课课课表表表表数据库数据库
课程基础信息表
教员选课表主关头字
元组
序号课程号号号号课程名课程名上课班级上课班级人数人数种别学分起止周教教教教室室室室
11151160数据库办理营专071办理061-2营销071-2157?3.001--18弘E205
21151160数据库办理财政071-2城管071-2156?2.501--18弘E201
31161160物流信息办理体系物流051-268?4.001--16弘D306
属性主关头字
候选关头字
课程号号号号课程名
1151160数据库办理
1161160物流信息办理体系
1161170数据库办理
1161171Excel与办理决议
内部关头字
数据库计划3:
(干系形式分化)
Entity1发卖员Relation发卖Entity2乡村
Name
#ID
Sex
Age
Addr.
Sales($)
City
(2)干系形式的暗示:干系形式的暗示:R(U,D,dom,F)
干系名R、一组属性U来自的域D、属性到域的映照dom、属性组U上的一组数据依附F。
简记为三元组R<U,F>。当且仅当U上的一个干系r满意F时,r称为干系形式R<U,F>的一个干系。
(3)函数依附:函数依附:
设R(U)是属性集U上的干系形式。X,Y是U的子集。若关于R(U)的任何一个大概的干系r,r中不成能存在两个元组在X上的属性值相称,而在Y上的属性值不等,则称:X函数断定Y或Y函数依附于X,记作X→Y。
(4)各类函数依附干系各类函数依附干系:
非伟大的函数依附:X→Y,但Y?X,则称X→Y。一样平常会商的都是这类情势的函数依附。
伟大的函数依附:X→Y,且Y?X。
完整函数依附:在R(U)中,若X→Y,且关于X的任何一个真子集X`,都有X`非函数决意Y。暗示为X→F
Y。
部分函数依附:若X→Y,但Y不完整函数依附于X。暗示为X→PY。
传送函数依附:在R(U)中,假如X→Y,(Y不属于X),Y非函数决意X,Y→Z,则称Z对X传送函数依附。
暗示为X→传送Z。
(5)范式:干系数据库中的干系是满意必定请求的,满意分歧水平请求的为分歧范式。
第一范式(1NF):假如一个干系形式R的一切属性都是不成分的基础数据项,则R∈1NF。干系作为一张二维表,对它的一个最最少请求是:每个份量必需是不成分的数据项。1NF是干系形式的最最少请求,不满意第一范式的数据库形式不克不及称为干系数据库。
第二范式(2NF):若R∈1NF,且每个非主属性完整函数依附于码,则R∈2NF。不满意2NF会招致的成绩:拔出非常、删除非常、修正庞大(后文会讲到)
第三范式(3NF):干系形式R<U,F>中若不存在候选码X、属性组Y及非主属性Z(Z?Y,即Z-Y≠φ)使得X→Y、Y非函数断定X和Y→Z建立,则称R∈3NF。
即:若R∈3NF,则每个非主属性即不部分依附于码,也不传送依附于码。
(6)标准化:一个低一级范式的干系形式,经由过程形式分化能够转换为多少个高一级范式的干系形式的汇合,这类历程就叫标准化。标准化的历程,也是干系形式分化的历程,请求既要坚持函数依附,又要具有没有损毗连性。
申明:第4点"干系标准化实际和范式(NormalForm,NF)"下的数据库计划1,数据库计划2,数据库计划3原为图片,因本站不克不及上传图片,以是改成笔墨形貌,有不解的地方人人能够间接跳过。因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理? 我个人认为就是孜孜不懈的学习 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右) 我个人认为就是孜孜不懈的学习 习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
页:
[1]