精华内容
下载资源
问答
  • 数据库系统概念第三章PPT 英文版的 要其他几可以再联系
  • 该ppt详细介绍了数据库系统概念第三章sql语句的详细知识,很重要
  • null的处理非常关键,null往往是一个设计中的边界,而边界往往是动作发生的地方。几乎可以毫不犹豫地说,没有根据的使用null往往是非常有害的...有关数据库中操作的逻辑顺序,当设计一个数据库模型时非常有用: ...

    null的处理非常关键,null往往是一个设计中的边界,而边界往往是动作发生的地方。几乎可以毫不犹豫地说,没有根据的使用null往往是非常有害的。

    下面四幅图中的结论可以用逻辑思考来理解:

    关于lateral:

    有关数据库中操作的逻辑顺序,当设计一个数据库模型时非常有用:

    展开全文
  • 3.c insert into instructor select ID, name, dept_name, 10000 from student where tot_cred>100; 本来工资设置为10000,返回错误 Error Code: 3819. Check constraint 'instructor_chk_1' is violated. 违反...

    3.1.f

    (select sec_id, course_id,count(ID)
    from takes natural join section
    where year=2009 AND semester="Fall"
    group by sec_id, course_id
    )
    union 
    (
    select sec_id, course_id, 0
    from section
    where (sec_id, course_id) not in 
    (select sec_id, course_id
    from takes natural join section
    ) and year=2009 AND semester="Fall"
    );
    

    自己想了一个好的解,先用自然连接找所有有学生的课,遍历一下找到所有不在这个集合中的课,但是这样可能效率要低

     

    3.1.e

    SELECT (
    SELECT COUNT(ID) 
    FROM takes
    WHERE takes.year = section.year
    and takes.semester = section.semester and section.sec_id=takes.sec_id AND section.course_id=takes.course_id 
    // group by section.sec_id 这里是错误的
    ) as x
    FROM section
    WHERE section.year="2009" AND section.semester="FALL";

    这是一不小心写出的错误解,值得注意的是,如果不加被注释的group by 语句,当一门课没有人选修时会得到0,如果加上会得到null,其原因是加上后如果没有人选修会得到一个对零个对象的group by,即零个分组,然后对零个分组中每个分组做count,会得到一个包含零个行的关系,也就是null。所以得到空的原因不是count(null),而是对零个分组分别做count,得到null

     

    3.2.a

    SELECT *
    FROM (
    (SELECT SUM(points*credits) as sum
    FROM takes NATURAL JOIN grade_points NATURAL JOIN course
    WHERE ID=11111)         /* 如果存在就走这个 */
    UNION                    /* 将两种结果并一下 */
    (SELECT 0 as sum
    WHERE NOT EXISTS (SELECT * FROM takes WHERE ID=11111)
    )) as x                /* 不存在走这个*/
    WHERE sum IS NOT NULL;        /* 如果不存在的话,上面的结果是NULL,所以需要一个判断把它去掉 */

    要考虑学生没有选课的可能

     

    3.2.b

    (SELECT SUM(points*credits)/SUM(credits) as GPA
    FROM takes NATURAL JOIN grade_points NATURAL JOIN course
    WHERE ID=10100)
    UNION
    (SELECT null as GPA
    WHERE NOT EXISTS (SELECT * FROM takes WHERE ID=10100)
    )

    对于没有选课的学生,最好的选择是将GPA设为NULL而不是0,这样计算平均GPA等操作时可以不计算这些学生。数据库的设计还是要符合实际情况。

     

    3.c

    insert into instructor
    	select ID, name, dept_name, 10000
        from student
        where tot_cred>100;

    本来工资设置为10000,返回错误  Error Code: 3819. Check constraint 'instructor_chk_1' is violated.

    违反约束,可以查到salary的定义是大于29000,需要注意这种错误

     

    5.b

    create temporary table tmp (
    	grade varchar(2)
    );
    insert into tmp values('A');
    insert into tmp values('B');
    insert into tmp values('C');
    insert into tmp values('D');
    insert into tmp values('S');
    
    
    select (select count(*)
    from(
    	select ID, tot_cred, (case 
    		when tot_cred<40 then 'D'
    		when tot_cred<70 and tot_cred>=40 then 'C'
    		when tot_cred<100 and tot_cred>=70 then 'B'
    		when tot_cred<130 and tot_cred>=100 then 'A'
    		else 'S'
    	end) as x 
    	from student) as g
    where g.x=tmp.grade ) as y
    from tmp;

    同样的需要解决人数位0的等级如何出现在统计中的问题,这类问题的解决方法总结有两种,一种是不使用group by 改为在外层多嵌套一个select,另一种是使用union将group by结果与一个not in判断结果合并

     

    3.9.e

    create table company (
    	ID int primary key,
    	name varchar(4),
        city varchar(2)
    );
    
    insert into company values(1,'SBC','a');
    insert into company values(2,'SBC','b');
    insert into company values(3,'SBC','c');
    insert into company values(4,'AC','a');
    insert into company values(5,'AC','c');
    insert into company values(6,'TT','d');
    insert into company values(7,'QR','d');
    insert into company values(8,'TT','a');
    insert into company values(9,'TT','b');
    insert into company values(10,'TT','c');
    
    select * 
    from company as c0
    where not exists(
    	select *
        from company as c1
        where name='SBC' and not exists (
    		select city
            from company as c2
            where c1.city=c2.city and c0.city=c2.city
        )
    );
    

    这种双重not exsists的句式可以用来查询“存在于所有的。。的”,但是比较难理解,需要多看几遍

    展开全文
  • 数据库系统概念第by SixInNight

    多人点赞 2019-09-15 13:01:46
    数据库系统概念第引言文件处理系统数据抽象实例、模式、数据模型数据库语言 引言 文件处理系统 文件处理系统(file-processing system): 是传统的操作系统所支持的。在数据库管理系统(DBMS)出现以前,各个...

    引言



    文件处理系统

    文件处理系统file-processing system):
    是传统的操作系统所支持的。在数据库管理系统DBMS)出现以前,各个组织通常都采用这样的系统来存储信息 (永久记录被存储在多个不同的文件中,人们编写不同的应用程序来记录从有关文件中取出或加入到适当的文件中)

    (存储组织信息的)主要弊端

    • 数据的冗余和不一致 data redundancy and inconsistency
      冗余除了导致存储和访问开销增大以外,还可能导致数据不一致性,即同一数据的不同副本不一致
    • 数据访问困难 difficulty in accesssing data
      传统的文件处理系统不支持以一种方便而高效的方式去获取所需数据。我们需要开发通用的、能对变化的需求做出更快反应的数据检索系统
    • 数据孤立 data isolation
    • 完整性问题 integrity problem
      数据库中所存储的数据的值必须满足某些特定的一致性约束consistency constraint
    • 原子性问题 atomicity problem
      保持原子性,要么全部发生要么根本不发生,而在传统的文件处理系统中很难做到
    • 并发访问异常 concurrent-access anomaly
    • 安全性问题 security problem
      由于应用程序总是即席的加入到文件处理系统来,一些安全性约束难以实现

    数据抽象

    开发人员通过如下几个层次的上的抽象来对用户屏蔽复杂性

    • 物理层physical level):
      最低层次的抽象,描述数据实际上是怎样存储的。它详细描述复杂的底层数据结构
    • 逻辑层logical level):
      层次稍高,描述数据库中存储什么数据及这些数据间存在什么关系。这样它就通过少量相对简单的结构描述了整个数据库。物理数据独立性physical data independence:逻辑层的用户不必知道涉及物理层结构的复杂性
    • 视图层view level):
      最高层次的抽象,只描述数据库的某个部分。系统可以为同一数据库提供多个视图

    实例、模式、数据模型

    特定时刻存储在数据库中的信息的集合称作数据库的一个实例instance

    而数据库的总体设计称作数据库模式schema)(数据库模式即使发生变化,也不频繁)

    • 物理模式 physical schema ——物理层
    • 逻辑模式 logical schema ——逻辑层
    • 子模式 subschema ——视图层

    数据库结构的基础是数据模型data model),数据模型 是一个 描述 数据、数据联系、数据语义以及一致性约束 的概念工具 的集合,提供了一种描述 物理层、逻辑层以及视图层数据库设计 的方式

    • 关系模型 relation model
    • 实体-联系模型 entity-relationship model
    • 基于对象的数据模型 object-based data model
    • 半结构化数据模型 semistructured data model
      还有很少被使用的 网状数据模型 network data model层次数据模型 hierarchical data model

    数据库语言

    数据定义语言data-definition language,DDL)定义 数据库模式
    数据操纵语言data-manipulation language,DML)表达 数据库的查询和更新
    它们并不是两种分离的语言,而是简单的构成了单一的数据库语言(如SQL语言)的不同部分

    DDL

    • 域约束domain constraint):是 完整性约束 的最基本形式
    • 参照完整性referential integrity
    • 断言assertion):一个断言 就是数据库需要时刻满足的某一条件。域约 束和参照完整性约束断言 的特殊形式
    • 授权authorization):
      • 读权限 read authorization
      • 插入权限 insert authorization
      • 更新权限 update authorization:允许修改,但不能删除数据
      • 删除权限 delete authorization
    • 数据字典 data dictionary:可以把它看作一种特殊的 ,这种表只能由数据库系统本身(不是常规的用户) 来访问和修改。在读取和修改实际的数据前,数据库系统先要参考数据字典
      元数据 metadata:是关于数据的数据。数据字典 包含了元数据
      DDL以一些指令(语句)作为输入 ,生成一些输出DDL的输出放在数据字典

    DML

    • 访问类型检索插入删除修改 (DML中涉及信息 检索 的部分称作查询语言 query language
    • 类别过程化DML procedural DML声明式DML declarative DML(也称为 非过程化DML

    关系数据库

    每个有多个 ,每个 有唯一的名字。每个包含一种特定类型的记录每种记录类型定义固定数目的字段属性,表的对应记录类型的属性

    关系数据库基于关系模型关系模型基于记录的模型的一个实例,之所以叫基于记录的模型是因为数据库的结构是几种固定格式的记录

    这里的应用程序是指,以这种方式与数据库进行交互的程序

    为了访问数据库DML语句需由宿主语言来执行,有两种途径

    • 通过提供应用程序接口(过程集),它可以用来将DML和DDL的语句发送给数据库,再取回结果
      开放数据库连接(ODBC)标准(与C语言一起使用的),是一种常用的应用程序接口标准,JAVA数据库连接(JDBC)标准为JAVA语言提供了相应的特性
    • 通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用
      通常用一个特殊字符作为DML调用的开始,并且通过DML预编译器DML precompiler),来将DML语句转变为宿主语言中的过程调用

    实体-联系模型、规范化、存储管理器

    实体-联系(E-R)数据模型使用一组称作实体的基本对象,以及这些对象间的联系

    数据库的实体通过属性attribute)集合来描述,联系relationship)几个实体之间的关联
    同一类型所有实体的集合称作实体集entity set),同一类型所有联系的集合称作联系集合relationship set

    数据库的总体逻辑结构(模式)可以用实体-联系图entity-relationship diagram,E-R 图)进行图形化表示。画图采用的方法包括统一建模语言Unified Modeling Language,UML),基于UML的符号中,E-R图如下表示:

    • 实体集用矩形框表示,实体名在头部,属性名列在下面
    • 联系集用连接一对相关的实体集的菱形表示,联系名放在菱形内部

    E-R模型描绘的数据库必须遵守的一个重要约束映射基数mapping cardinality),它表示通过某个联系集能与一实体进行关联的实体数目

    规范化

    • 最常用的方法是使用函数依赖functional dependency
    • 目标是生成一个关系模式集合,使存储信息时没有不必要的冗余 &同时能轻易检索数据

    存储管理器负责数据库中数据的存储、检索和更新,存储管理部件包括:


    数据库体系结构

    系统体系结构

    两层体系结构two-tier architecture)和三层体系结构three-tier architecture):

    展开全文
  • 截图来自数据库系统概念中文六版 想要中文版和英文版的请留言!!!我会尽量及时回复!!! 数据库系统体系结构 实践习题和答案 1.2 1.3 1.6 习题 1.13 Answer: A general purpose ...
  • 数据库系统的应用: 数据库的应用非常广泛,以下是一些具有代表性的应用:企业信息、银行和金融、大学、航空业、电信业。 文件处理系统的主要弊端: (1)数据的冗余和不一致 (2)数据访问困难 (3)数据孤立 (4)...
  • 数据库系统概念第6版第三章答案 3.1 a.找出Comp.Sci系开设的具有3个学分的课程名称。 select title from course where dept_name = "Comp.Sci" and credits = 3; b.找出名叫Einstein的教师所教的所有学生的标识...
  • 数据库系统概念总结:第三章 SQL

    千次阅读 2019-09-07 11:38:32
    第三章 SQL 3.1 SQL查询语言概况 3.2 SQL数据定义 3.2.1 基本类型 char(n):固定长度n的字符串(长度不够自动补空格) varchar(n):可变长度的最大长度为n的字符串 int:整型 smallint:小整型 numeric(p,...
  • 数据库系统:一些相互关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。 设计数据库系统的目的:管理大量信息。(如果数据量不大,设计数据库的意义就不是那么明显了) 数据库系
  • 参考大学数据库模式图可知,section关系中的元素course_id指向course关系,即有外码指向course关系,形成了外码约束。如果直接删除course中的该信息,会导致section中的主码course_id在course关系中找不到关联,违背...
  • 数据库系统概念六版)前三章
  • 包含数据库系统概念第六版全部的实践练习题答案,是英文版的,也包含题目。令,数据库系统概念第七版将会在2019年3月12日正式出版,中文版出版日期未知,下载时请注意,童叟无欺!
  • 第三章 数据库设计 第一节 数据库设计概述 一、数据库的生命周期 (1)、数据库的生命周期分为两个阶段: 1、数据库分析与设计阶段 第一个阶段包括需求分析、概念设计、逻辑设计和物理设计。 2、数据库实现与...
  • 数据库系统概念(第六版)第三章实践习题 全部为博主自己写的,博主数据库:oracle 11g; 工具:PL/ SQL 欢迎雅正 (持续更新中) 3.1 使用大学模式,用SQL写出如下查询 a.找出Comp. Sci. 系开设的具有3个学分...
  • 1.3 数据视图 1.3.1 数据抽象 物理层 描述数据是怎样存储的 ...实例:特定时间存储在数据库中的信息的集合称为数据库的一个实例 数据库模式: 物理模式: 在物理层描述数据库的设计 逻辑模式 在...
  • 数据库系统概念第六版(Abraham Silberschatz 著)中文翻译
  • 数据库理论习题 8.2 列出所示关系满足的函数依赖 A B C a1 b1 c1 a1 b1 c2 a2 b1 c1 a2 b1 c3 答: 平凡的依赖关系有19种,类型均如由于β∈α,故α->β。 单属性的:A->A,B->B,C-&...
  • 关系数据库设计 8.1 好的关系设计的特点 数据库逻辑设计主要解决的问题: –关系数据库应该组织成几个关系模式 –关系模式中有包括哪些属性 从不良的设计模式到良好的设计模式的过程 不良的设计...
  • 数据库系统概念14知识点总结 事务 事务是访问并可能更新各种数据项的一个程序执行单元。事务通常由高级数据操作语言或编程语言通过JDBC或ODBC嵌入式数据库访问书写的用户程序的执行所引起。事务用形如...
  • ——数据库系统概念(第六版)第三章习题 数据库版本:oracle 11g; 工具:PL/ SQL 3.11 使用大学模式,用SQL写出如下查询 a.超出所有选修了至少一门Comp. SCI.课程的学生姓名,保证结果中没有重复的姓名。 ...
  • 数据库系统概念1-3章知识总结
  • 数据库系统概念第六版课后习题答案-第一

    万次阅读 多人点赞 2018-11-25 22:43:35
    1.1 这一讲述了数据库系统的几个主要的优点。它有那两个不足之处? Ans: a. 建立一个数据库系统需要更多的知识,钱,技能和时间; b. 数据库的复杂性可能会导致性能的降低。 1.2 列出Java和C++之类的语言中的...
  • 数据库系统概念》第5知识点总结 高级SQL 前面第3章和第4介绍的是SQL的基本操作 本介绍的则是如何使用通用程序设计语言来访问SQL以及触发器等。   JDBC JDBC标准定义了Java程序连接数据库服务器的应用程序...
  • 数据库系统基本概念 1.1 数据管理技术的发展 1.2 数据描述 1.3 数据抽象的级别 1.4 数据库管理系统(DBMS) 1.5 数据库系统(DBS) 数据库系统基本概念 1.1 数据管理技术...
  • 中级SQL 4.1 连接表达式 4.1.1 连接条件 select * from student join takes on student.ID = takes.ID; 4.1.2 外连接 连接操作的扩展,可避免信息丢失 分类 –左外连接(left outer join):保留在左外...
  • 文章目录版本1 引言1.1 数据库系统的应用1.2 ...数据库系统概念 机械工业出版社 原书六版,翻译版 1 引言 1.1 数据库系统的应用 1.2 数据库系统的目标 1.3 数据视图 1.4 数据库语言 1.5 关系数据库 1.6 数
  • 数据库系统的基本原理: 数据库访问: 方法1:利用数据库管理系统提供的交互工具访问数据库 方法2:利用开发工具设计界面、处理数据、调用ODBC等接口访问数据库,如:asp,jsp,vc++,php等 数据库(DB): 1.与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,089
精华内容 24,435
关键字:

数据库系统概念第三章