zoukankan      html  css  js  c++  java
  • 数据库常识

    外码


    外 键(Foreign Key)是指表中的一列或一组列,其值必须至少匹配其父表中一行的一个主键或惟一键值。这真正意味着什么呢?它实际上并非如听起来那般复杂。简单来说,它 意味着如果表(T2)中的一列(C2)存在值匹配另一个表(T1)中的一列(C1)的值, 并且 C1 是 T1 的主键,那么 C2 就是 T2 中的外键列。将包含了父键(主键或惟一键)的表称为 父表(parent table),而将包含了外键的表称为 子表(dependent table)。

    触发器


    触发器(trigger) 是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

    触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如,您可以根据客户当前的帐户状态,控制是否允许插入新订单。

    触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。


    存储过程


       一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。(批注:类似于函数)

    事务:

    并发控制的基本单位,是一个操作序列。这些事务要么都执行,要么都不执行,事务具有不可分割性(类比原子),事务是维护数据一致性的基本单位。
    原子性:事务中包含的操作,被看做逻辑单元,要么全部成功,要么全部失败,所以存在事务的提交和事务的回滚,事务的所有操作是不可分割
    一致性:在事务开始之前和事务结束之后,数据库都保持一致性的状态,数据库的完整性约束没有被破坏
    隔离性:对数据库进行修改的多个数据是彼此隔离的,事务必须是独立的,不应该彼此之间存在依赖
    持久性:事务对系统的操作应该是永久的,真实的修改了数据库。

    索引


    在关系数据库中,索引是一种单独的、物理的数对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

    索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。

    当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。


    参照完整性


    参照完整性则是相关联的两个表之间的约束,具体的说,就是从表中每条记录外键的值必须是主表中存在的,因此,如 果在两个表之间建立了关联关系,则对一个关系进行的操作要影响到另一个表中的记录。

    例如,如果在学生表和选修课之间用学号建立关联,学生表是主表,选修课是从表,那么,在向从表中输入一条新 记录时,系统要检查新记录的学号是否在主表中已存在,如果存在,则允许执行输入操作,否则拒绝输入,这就是参照 完整性。

    参照完整性还体现在对主表中的删除和修改操作, 例如,如果删除主表中的一条记录,则从表中凡是外键的值与主 表的主键值相同的记录也会被同时删除,将此称为级联删除;如果修改主表中主关键字的值,则从表中相应记录的外键 值也随之被修改,将此称为级联删除。


    实体完整性


    实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。

    实体完整性规则规定基本关系的所有主关键字对应的主属性都不能取空值,例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。

    对于实体完整性,有如下规则:

    · 实体完整性规则针对基本关系。一个基本关系表通常对应一个实体集,例如,学生关系对应学生集合。

    · 现实世界中的实体是可以区分的,它们具有一种唯一性质的标识。例如,学生的学号,教师的职工号等。

    在关系模型中,主关键字作为唯一的标识,且不能为空。

    视图


    视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是SELECT语句。 SELECT语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在Transact-SQL语句中通过引用视图名称来使用虚拟表。

    使用视图可以实现下列任一或所有功能: 将用户限定在表中的特定行上。 例如,只允许雇员看见工作跟踪表内记录其工作的行。

    将用户限定在特定列上。 例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。

    将多个表中的列联接起来,使它们看起来象一个表。


    域:

    在关系中,没一个属性都有一个取值范围,称为属性的值域。

    关系实例:

    就是一个关系,即一张二维表格。

    元组:

    在关系中,记录称为元组。即二维表的一行

    属性:

    二维表的一列

    关系模型:

    用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。

    范式:




    SQL语言

     
     
     
     
     
     
     

     

     





  • 相关阅读:
    【常见Web应用安全问题】13、Blind SQL/XPath injection
    【常见Web应用安全问题】14、Google Hacking
    【常见Web应用安全问题】14、Google Hacking
    更新和插入新纪录
    Webservice调用方式:axis,soap详解
    Webservice:客户端用https
    hdu 1711(KMP入门题)
    poj 3349(hash判重)
    poj 2486(树形DP+背包)
    zoj 1588(桥)
  • 原文地址:https://www.cnblogs.com/DDante/p/147312ba0540455c3cfe9a2959e5e91b.html
Copyright © 2011-2022 走看看