【DBMS HKUST slides1~6】数据库管理系统 知识点总结

Course Outline

  • ER Model

  • Relational Model and Algebra

  • SQL

  • Functional Dependencies and Relational Database Design

  • Storage and File Systems

  • Tree and Hash Indexes

  • Query Processing and Implementation of Relational Operators

  • Query Optimization

  • Transactions

  • Concurrency Control Protocols

  • Database Recovery

 

数据库在线

schema 模式

instance 实例

DBMS:数据库管理系统

 

文件系统(File System)的主要弊端:
  • 数据冗余和不一致(data redundancy and inconsistency)

  • 数据访问困难(difficulty in accessing data)、数据孤立(data isolation)

  • 完整性问题(integrity problem)

  • 原子性问题(atomicity problem)

  • 并发访问异常(concurrent-access anomaly)

  • 安全性问题(security problem)

 

Data Models 数据模型:
  • Object-based logical models 基于对象的逻辑模型:

    • Entity-Relationship Model (ER Model) 实体-联系模型

      提供一种方便的图形化方式来观察数据、联系和约束。

  • Record-based Logical Models 基于记录的逻辑模型:

Relational Model 关系模型

  • Other:

    Network Model 网络模型

    Hierarchical Model 层次模型

    object-oriented model, objected-relational model …...

数据抽象的三个层次:
  • 物理层(physical level)

  • 概念层(逻辑层,logical level)

  • 视图层(view level)

数据库语言
  1. 数据库定义语言(DDL)

  2. 数据操纵语言(DML)

    DML中涉及信息检索的部分称作查询语言(query language)

使用数据库的人员
  1. 数据库管理员(DataBase Administrator,DBA):对系统进行集中控制的人

  2. 数据库用户:四种类型,系统为不同类型用户设计不同类型的用户界面

    1. 无经验的用户(naïve user):通过激活事先写好的应用程序同系统交互,典型用户界面是表格界面。

    2. 应用程序员(application programmer):开发用户界面

    3. 老练的用户(sophisticated user):不通过编写程序同系统交互,而是用数据库查询语言或数据分析软件等工具表达要求。

    4. 专门的用户(specialized user):编写专门的、不适合于传统数据处理框架的数据库应用的富有经验的用户。

DBMS的结构


E-R图(实体-联系图,ER Diagram)

实体-联系模型Entity-Relationship (ER) model

实体entity

        • 实体

        • 实体集(entity set):相同类型(具有相同性质/属性)的一个实体集合。

          1. 弱实体集(weak entity set):不具有足够的属性构成主码的实体集。

          2. 有主码的实体集则称作强实体集(strong entity set)

        • 属性(attribute)

          • E-R模型中属性的分类:

            1. 简单(simple)属性/复合(composite)属性:

            简单属性不能划分为更小的部分;

            复合属性可以划分为更小的部分(其他属性)。 复合属性可以有层次,子属性可进一步划分。

            1. 单值(single-valued)属性/多值(muti-valued)属性:

            单值属性对一个特定的实体都只有单独的一个值;

            多值属性对一个特定的实体有对应的一组值。用花括号表示属性是多值的。

            1. 派生(derived)属性:可从别的相关属性或实体派生出来。

          • 码(key):足以区分每个实体的属性集

            • 复合码(Composite Key)

            • 候选码(candidate key)—> 主码(primary key)

联系(relationship)

  • 联系

    • Recursive Relationship

  • 约束(Constraints)

    • 映射类型:

    1. 一对一(one-to-one)

    2. 一对多(one-to-many)

    3. 多对一(many-to-one)

    4. 多对多(many-to-many)

  • 参与约束

    1. 如果实体集E中的每个实体都参与到联系集R的至少一个联系中,实体集E在联系集R中的参与称为全部的(total)

    2. 如果实体集E中只有部分实体参与到联系集R的联系中,实体集E到联系集R的参与称为部分的(partial)

联系集

  • 二元(binary)联系集:涉及两个实体集的联系集。dbms中的大部分联系集都是二元的。

  • 非二元联系集

eg.三个实体集instructor、student和project通过联系集proj_guide相关联。

3. Class Hierarchy

img

img


关系模式Relational Model

基本术语
E-R图转换为关系模式

步骤:

Step 1 (Strong Entity Set)

Step 2 (Weak Entity Set)

Step 3 (1-to-1 Relationship)

Step 4 (1-to-many Relationship)

Step 5 (Many-to-many Relationship)

Step 6 (Non-binary Relationship)


  关系代数 Relational Algebra

  1. 基本运算
    1. 选择(select)运算:选出满足给定谓词的元组。

      用小写sigma(σ)表示,下标为谓词,括号中为参数关系。

    2. 投影(project)运算:返回作为参数的关系,但把某些属性排除在外,所有重复行均被去除。

      用大写pi(Π)表示,下标为在结果中出现的属性,括号中为参数关系。

    3. 并(union)运算

    4. 集合差(set-difference)运算

    5. 笛卡尔积(Cartesian-product)运算:将任意两个关系的信息组合在一起,结果中包含所有可能的元组对。

    6. 更名(rename)运算:给关系代数表达式的结果赋上名字以供引用。

      用小写rho(ρ)表示。

  2. 附加运算
    1. 集合交(intersection)运算 (∩)

    2. 连接(join)运算 (⋈)

    3. 除法(division)运算(/)


SQL

SQL:结构化查询语言

  1. 数据定义语言(Data-Definition Language, DDL):

    SQL DDL提供定义定义关系模式、删除关系以及修改关系模式的命令。

    SQL数据定义
    1. 固有类型

      ·char(n):固定长度(用户指定n)的字符串,等价全称character。•
      ​
      存入字符串长度不够时会追加空格使其达到固定长度;
      ​
      比较长度不同的char类型值时会自动在短值后追加空格使长度一致。
      ​
      ·varchar(n):可变长度(用户指定最大长度n)的字符串,等价全称character varying。
      ​
      Varchar类型不会增加空格。
      ​
      ·int:整数类型,等价全称integer。
      ​
      ·smallint:小整数类型。
      ​
      ·numeric(p, d):精度由用户指定(加上一个符号位有p位数字,其中d位数字在小数点右边)的定点数。
      ​
      ·real, double precision:浮点数与双精度浮点数。
      ​
      ·float(n):精度至少为n位的浮点数。
      ​
      SQL也提供nvarchar类型存放使用Unicode表示的多语言数据。

      每种类型都可能包含空值,表示一个缺失的值,应尽量避免加入空值。

    2. 基本模式定义

      • drop table:删除关于被去掉关系的所有信息

        drop table r; 
        --删除r的所有元组以及r的模式,除非用create table重建r否则没有元组可以插入r中
      • alter table:为已有关系增加属性(关系中在所有元组在新属性上的取值将被设为null)

        alter table r add A D; --为关系r添加域为D的属性A
        alter table r drop A; --为关系r中去掉属性A,很多数据库系统并不支持
        完整性约束(ICs):破坏完整性约束的任何数据库更新将会被标记错误并禁止。
    3. 扩展运算:
      数据库的修改
  • delete 删除

delete from r
where P;
/*P代表一个谓词,r代表一个关系。Delete语句首先从r中找出所有时P(t)为真的元组t,然后把它们从r中删除。*/
  • insert 插入元组

  • update 更新:不改变整个元组的情况下改变其部分属性的值。

视图(view)

不是逻辑模型的一部分,但作为虚关系对用户可见的关系。

定义视图:

create view v as <query expression>;
--v表示视图名,<query expression>可以是任何合法的查询表达式。
断言(assertion)
create assertion <assertion-name> check <predicate>;
    1. 触发器(trigger)

 

 

2. 数据操纵语言(Data-Manipulation Language, DML):

 

SQL DML包括查询语言,以及在数据库中插入元组、删除元组和修改元组的命令。

 

    • SQL查询的基本结构(Basic SQL Query)

      SQL查询可包含三种类型的子句:

      ·select子句:用于列出查询结果中所需要的属性

      ·from子句:一个查询求值中需要访问的关系列表(输入)。

      ·where子句:一个作用在from子句汇总关系的属性上的谓词。

      典型SQL查询形式(各子句必须以select、from、where次序写出):

      select A1, A2, …, An
      from r1, r2, …, rn
      where P;
      
      --Ai代表一个属性,ri代表一个关系,P为一个谓词,如果省略where子句P为true。

      一个SQL查询的含义可以理解为:

      1)为from子句列出的关系产生笛卡尔积。

      2)在步骤1结果上应用where子句中指定的谓词。

      3)对步骤2结果中的每个元组,输出select子句汇总指定的属性(或表达式的结果)。

  

    • 算术运算(Arithmetic Operation)

    • 更名运算(Rename Operation)

      as子句 old-name as new-name

      既可出现在select子句,也可出现在from子句中。

      selectT.name, S.course_id
      frominstructor asT, teaches asS --重命名关系
      whereT.ID= S.ID;  

      重命名关系适用于需要比较同一关系中元组的情况

    • 字符串运算(String Operation)

      like 操作符模式匹配:(大小写敏感)

      % 匹配任意子串

      _ 匹配任意一个字符

 

    • 排列元组显示次序(Ordering the Display of Tuples)

      order by子句 让查询结果中元组按特定属性排序(默认升序)

      升序:asc

      降序:desc

      //按salary降序列出整个instructor关系,如果有几位教师的工资相同,就按姓名升序排列
      select*
      frominstructor
      orderbysalary desc, name asc;

       

    • 空值(NULL value)

    • 序列(Sequence)

    • 分组(Group By)

      group by子句 用于构造分组。指定所有属性上取值相同的元组将被分在一个组中。

    • 除法运算(Division)

    • 集合运算(Set Operation)

      • union 并

      • intersect 交

      • except 差

    • 聚集运算(Aggregate Operator)

      以值的一个集合(集或多重集)为输入,返回单个值

 

转载于:https://www.cnblogs.com/Ryan0v0/p/11220781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 .试述数据、数据库数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。数据与其语义是不可分的。 500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。 ( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 ( 3 )数据库系统( DataBas 。 Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。解析数据库系统和数据库是两个概念。数据库系统是一个人一机系统,数据库数据库系统的一个组成部分。但是在日常工作中人们常常把数据库系统简称为数据库。希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。 ( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。著名的有美国 IBM 公司的 DBZ 关系数据库管理系统和 IMS 层次数据库管理系统、美国 Oracle 公司的 orade 关系数据库管理系统、 s 油 ase 公司的 s 油 ase 关系数据库管理系统、美国微软公司的 SQL Serve ,关系数据库管理系统等。 2 .使用数据库系统有什么好处? 答: 使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如,可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担,等等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS 来完成。用一个通俗的比喻,使用了 DBMS 就如有了一个好参谋、好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计,而不必为数据管理的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构也需要改变时,由于数据库系统提供了数据与程序之间的独立性,数据逻辑结构的改变是 DBA 的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序,从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性、多用户并发控制、故障恢复等,都由 DBMS 执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值