林谷的花生吧 关注:54贴子:14,192
  • 7回复贴,共1

数据库系统

只看楼主收藏回复


DB,DBMS,DBS 一个比一个大
数据模型:描述数据的一组概念和定义
数据模式:用给定的数据模型给数据集进行描述产生的结果
三级模式:物理(磁盘),概念(逻辑)[基表],外模式[view]*n
【数据独立】
逻辑数据独立性:应用程序(在外模式上开发)不受逻辑模式变化的影响
物理数据独立性:逻辑结构不受物理模式变化的影响
BS和CS架构:BS架构不要下载终端,在服务端处理,结果返回浏览器
DBMS的好处:high level user interfaces; query processing and optimization; catalog management; concurrency control and recovery; integrity constrains checking; access control
DBS生命周期:planning;designing;establishing and loading;running,managing and maintaining;extending and restructuring
设计阶段要考虑的问题:information requirement;process requirement;DBMS feature;hardware,OS feature;data schema;typical applications


IP属地:广东1楼2019-05-01 10:28回复

    数据模型:层次模型,网状模型,关系模型
    层次模型:一个实体是一条记录,由若干域组成,PCR(双亲子女关系)表达1:N关系,只能有一个双亲。整体就是一棵树,不利于表达N:M关系,也不利于表达N:1关系,更不利于表达多元关系——>引入虚记录,树形结构存的是指针,指向真正的实体。
    网状模型:基本数据结构“set”,1:N关系,主-属关系;一个记录类型可以是多个系的主/属记录;record(记录) and data items(域,复合类型);LINK记录表达——自体关系、M:N关系、多元关系。
    以上两种查询比较麻烦,树的查询和链表的查询
    关系模型:用table,表示实体,也能表示实体间的联系,还能表示查询结果——严格的封闭空间,所以能用集合论求解。
    features:
    base on set theory,high abstract level;
    shield all lower details;
    can establish new algebra system(relational algebra); non procedure query lanuage(SQL); soft link(the essential difference with former data models)


    IP属地:广东2楼2019-05-01 12:22
    回复

      【关系模型】
      属性的范围是域,所有属性必须是原子的——1NF,允许有空值
      关系和元祖:1个实体可以表现成多个关系。关系模式R=(A1,A2,A3....)n是R的目。每个元祖是由n个属性分别在域上的取值组成的记录。r={t1,t2,t3.....tm}, 每个元祖都是域的笛卡尔积的一个子集
      -----
      候选键:唯一决定这条元祖其他属性值;其子集没有前一条特性(不含多余属性)
      超键:唯一决定这条元祖其他属性(含多余的属性)
      候补键:多个候选键时,指定其中一个为主键,其他的为候补键
      全键:全部属性都算上才能决定一个元祖
      外键:用来引用另一个关系的元祖的键(是另一个元祖的主键)。外键不能空——引用完整性
      完整性约束:域完整性约束(每条属性的值都符合值域要求);引用完整性约束(外键);实体完整性约束(主键的属性不能为空)
      【关系代数】
      关系模型的理论基础,支持五个基本操作就是完备的。
      五个基本操作:选择,投影,笛卡尔积,集合差,集合并


      IP属地:广东3楼2019-05-01 17:42
      回复

        投影:可能造成重复元祖,从关系代数的意义上要消除重复元祖,因为在关系模型中如果所有属性值相等,表达的是同一事物。但现实中会避免删除,以免顾客需要。
        选择:选择操作不会造成重复元祖
        并,交,差:参与的关系要满足——相同个数的属性,且属性类型也一样(并兼容)
        笛卡尔乘积:把所有属性拼起来。元祖个数由原来两张表的元祖两两拼接而成——>产生多余元祖,想减少元祖——>条件连接(笛卡尔+选择)——>①【等值连接】条件连接特殊情况:只出现指定属性相等的元祖,去掉一列重复的属性——>②【自然连接】所有公共属性都做等值连接(公共属性都相等的元祖)
        【除法操作】
        查找“某人选择所有XXX”的情况
        Let A have 2 fields,x and y, B have only 1 field y:
        A/B={<x>|exist<x,y>∈A satisfy all<y>∈B}
        A/B contains all x tuples such that for every y tuple in B,there is an xy tuple in A
        OR if the set of y values associated with an x value in A contains all y values in B,the x value is in A/B
        就是从A选择出B全部条件的元祖,把该元祖里B包含的属性去掉
        五个基本操作写除法操作:
        否定之否定:找x,没有一个y值没联系——就是存在满足关系B的y值,与x拼接的xy不在A中。
        πx((π(A)×B)-A)——这里面的 x 值是不符合除法条件的
        【A/B = π(A)- πx((π(A)×B)-A)】
        外连接:保留多余的参与连接但没有等值匹配的元祖,分为:*▷◁、▷◁*、*▷◁*
        外并:并不兼容的两个关系,属性集=属性并(公共属性保留1份),元祖=元祖并


        IP属地:广东4楼2019-05-01 19:14
        回复

          【关系演算】
          基于谓词逻辑,非过程化的,表达结果条件——SQL语句的理论基础
          元祖关系演算TRC:变量是元祖{<x1,x2,...xn>|P(x1,x2,...xn,xn+1,...xn+m}
          域关系演算DRC:变量是属性
          用一个公式表达结果应该满足的条件,所有让公式成立的元祖的属性集就是答案。
          【域关系演算】:定义一组域变量,布尔表达式,取能让表达式为真的n个值。由原子公式开始
          (原子公式:<x1,x2,...xn>∈R,X op Y,X op 常量——> 否p,p∧q,p∨q,存在X(p(X)), 全称X(p(X))也是原子公式)注,上式的X没有被存在/全称绑定。左边的出现在右边的时候是free的。
          例:{<I,N,T,A>|<I,N,T,A>∈Sailors ∧ T>7}
          关系代数和关系演算是可以完全等价互换的
          安全查询:语法上正确但满足条件的结果却无限的查询就是不安全的
          【元祖关系演算】:
          {t[<atrribute list]|P(t)}
          在所有满足公式P的 t 元祖集里面,取指定属性组成结果属性集,形成结果元祖
          例:{ t[N] | t∈Sailors ∧ t.T>7 ∧ t.A<50}
          【ER模型】
          与关系模型的区别:允许复合属性,允许多值属性,
          ER图,用于设计数据库阶段
          基数比约束(一对一多对多);参与度约束(规定至少/必须/最多)
          扩展:弱实体[双线矩形](依赖于其他实体存在),普遍化(父类)与特殊化(子类),聚集(两个实体看成一个),范畴(不同类型实体组成的实体集)


          IP属地:广东5楼2019-05-01 19:56
          收起回复

            【DBMS用户接口】
            查询语言,访问工具GUI(给人用),APIs(应用程序编程接口),类库(以类的形式访问数据库)
            【SQL组成】
            DDL:关系模式的创建和删除,修改表的模式(现在一部用工具来做了)
            QL:检索
            DML:插入删除更新
            DCL:控制用户对数据的访问权限(讲约束的时候会用到)
            【一些细节】
            基表(真实存在),视图(虚表,基表计算而来),数据类型(不同数据库可能有差别),NULL,UNIQUE(属性是否允许重复),DEFAULT(缺省值),CHECK(定义完整性约束)
            执行过程(概念上):笛卡尔积——选择元祖——属性投影——(加DISTINCT)排序去重


            IP属地:广东6楼2019-05-01 21:08
            回复