数据库总结报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南商学院学年论文
题目数据库课程总结报告
学生
胡砚东
姓名
学
150940006
号
学
计算机与信息工程院
专业
信管1501
班级
指导
曾强聪
教师
职
教授
称
2
017年6月
目录
I目录 (1)
II引言 (2)
1第一章绪论 (3)
1.1数据库学习要素
1.2知识清单
2第二章相关理论概述 (13)
2.1数据库的概念
2.2结构化查询语言SQL、SELECT语句
2.3 关系模型与范式
2.4数据建模
2.5实体联系模型……设计、为实体创建表
2.6 触发器级联更改
3第三章学习数据库的态度 (18)
3.1学习态度
4 第四章学习内容理解 (19)
4.1 数据库的学习内容:基于实例的内容理解
5 第五章总结评审表 (32)
引言
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。
数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
第一章绪论
1.1数据库学习要素
1.传统数据库系统可以分成网状数据库。
层次数据库和关系数据库三大类。
2.早期的网状数据库模型中以记录为数据的存储单位,每个记录有一个唯一标识他的内部标识符,称为键,它在一个记录存入数据库时由DBMS自动赋予。
在查找语句中不但要说明查找的对象,而且要规定存取路径。
3. 层次数据库中最基本的数据关系是基本层次关系,它代表两个记录型之间一对多的关系。
数据库中有且仅有一个记录型无双亲,称为根结点。
其他记录型有且仅有一个双亲。
4.关系数据库以二维表来表示关系。
5.第三页,数据库系统的体系结构图。
1.2
6.在数据库系统中,可以使用两个描述形式表示客观世界的数据,即物理数据描述和逻辑数据描述。
物理数据和逻辑数据之间的转换通过数据库管理系统来实现。
7.逻辑数据包含两个层次:一是对客观世界的描述;二是对数据库
管理系统中数据的描述。
对客观世界描述的术语包括:实体,实体集,属性,标识符
在DBMS中数据描述的术语包括:字段,记录,文件,关系,关键码
8.数据独立性是指应用程序不会因为物理表示和访问技术的改变而改变。
数据独立性包括物理独立性和逻辑独立性。
物理独立性:即当数据的物理结构(如存储结构、存储位置和存取方法等)发生改变时,数据库的逻辑结构并不受到影响,因而也不会引起应用程序的改变。
逻辑独立性:即当数据库总体结构(如数据的定义、数据类型、数据间的联系等)发生时,无需修改原来的应用程序。
9.数据库系统的三级模式结构:外模式、模式和内模式。
模式实际上是数据库的逻辑视图,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,也是所有用户的公共数据视图。
一个数据库只有一个模式。
外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述。
它是数据库用户能够看见和使用的局部数据的逻辑结构和特征描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式。
内模式是数据库在物理存储方面的描述,它定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
一个数据库只有一个内模式。
它是数据物理结构和存储方式的描述,是数据在数
据库内部的表示方式。
提供两级映像:外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了数据与程序的逻辑独立性
模式/内模式映像保证了数据与程序的物理独立性
10.数据库系统软件有:数据库管理系统,支持DBMS运行的操作系统,具有与数据库接口的高级语言以及编译系统,各种基于数据库的应用软件。
11.随着计算机网络技术的发展,在许多新的数据库应用领域面前,传统的数据库技术面临挑战。
其主要表现在以下几个方面:环境的变化,数据类型的变化,数据来源的变化,数据管理要求的变化。
二
1.数据模型应满足三方面的要求:
能比较真实的模拟现实世界,容易被人们理解,便于在计算机上实现。
2.模型分为概念模型和数据模型两个层次。
概念模型是按用户的观点对数据和信息建模;数据模型是按计算机系统的观点对数据建模,主要用于DBMS的实现,主要包括网状模型、层次模型和关系模型等。
3.数据模型通常由数据结构、数据操作和完整性约束条件三部分组成。
4.两个实体之间的联系有三类:一对一,一对多,多对多。
5.ER图表示方法:实体用矩形表示,属性用椭圆形表示,联系用菱形表示。
6.层次数据模型
满足两个条件:
(1)有且只有一个节点没有双亲结点
(2)根结点以外的其他节点有且只有一个双亲节点。
主要优点:
(1)层次数据模型本身比较简单。
(2)层次模型对具有一对多的层次关系的部门描述非常自然、直观,容易理解
(3)层次数据模型提供了良好的完整性支持
主要缺点:
(1)在现实世界中有很多非层次性的联系,层次模型难以表示。
(2)对于插入和删除操作的限制比较多
(3)查询子结点必须通过父结点
(4)由于结构严密,层次命令趋于程序化
7. 网状数据模型
满足两个条件:
(1)允许一个以上的结点无父结点
(2)一个节点可以有多于一个的父结点
主要优点:
(1)网状模型能够更直接的描述现实世界
(2)具有良好的性能,存取效率较高
主要缺点:
(1)网状数据模型结构比较复杂,应用系统越大,数据库的结构越复杂
(2)网状数据库的用法比较复杂,用户不容易掌握
8.关系数据模型:
用二维表表示实体和实体间的联系
注意:
(1)关系表中的每一列都是不可再分的基本字段,不能表中套套(2)关系表中的字段不能重名
主要优点:
(1)关系模型是建立在严格的数学概念基础上的,以集合论、关系代数为基础
(2)关系模型的概念单一,数据结构简单,用户易懂易用
(3)具有较高的数据独立性
主要缺点:运行效率不够高
9.SQL语言可以对基本表和视图进行各种操作。
2.2 知识清单
数据库系统:用户系统、应用系统、数据库管理系统DBMS、数据库DB
数据库系统种类:
1.个人数据库.Access,基于文件构建小规模
2.服务器数据库(企业级),SQL Server ,MySQL
3.分布式数据库应用于大规模使用
关系型数据库构建:建库、表,表中的列(字段)产生表结构,行(记录)产生数据存储单位,并建立视图完成
1. 数据库管理系统功能:数据定义(DDL)、数据操纵(DML)、数据库的运行管理和控制。
具体功能包括:数据的安全性保护、数据的完整性控制、数据库恢复、并发控制、事务支持、数据库的建立与维护。
2.数据库系统三级模式结构:外模式、模式、内模式。
模式:也称逻辑模式,总体描述了数据库中全部数据的逻辑结构和特征。
关系数据库中对应基本表。
一个数据库仅一个模式。
外模式:又称子模式,从模式中导出的子集,与某应用相关的数据的逻辑描述。
关系数据库中对应视图与部分基本表。
一个数据库可以有多个外模式。
内模式:又称存储模式,数据库中全体数据的物理实现。
关系数据库中对应存储文件。
一个数据库只有一个内模式。
3.数据模型三种类型(不同的应用层次):概念数据模型、逻辑数据模型、物理数据模型。
数据模型3要素:数据结构、数据操作、完整性约束。
概念数据模型:设计数据库初始阶段,数据库的设计人员独立于计算机和DBMS,对现实世界中数据特征进行抽象。
(E-R模型)概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
逻辑数据模型:数据库管理系统(DBMS)的实现,既面向用户又面向系统。
常用模型有:层次模型、网状模型、关系模型、面向对象模型。
物理数据模型:是面向计算机物理表示的模型,每一种逻辑数据模型在实现时都有起对应的物理数据模型
二、关系数据库
1.关系数据库基本术语
关系:一个关系就是一个二维表,表名即关系名。
属性:属性为二维表的列,属性个数为关系的元数(度),列的值为属性值,取值范围为值域。
关系模式:关系名(属性1,属性2,属性3....)。
元组:二维表的一行。
分量:元组中的一个属性值。
候选码:即候选键。
唯一标识该关系元组的属性(或属性组)。
主码:主键。
指定一个候选码唯一标识元组。
主属性:候选码中的属性。
外码:即外键。
不是本关系的主码,同时是另一个关系的主码。
参照关系:外码作为主码的关系称为参照关系,也称主关系;外码所在的关系称非参照关系,也称从关系。
2.关系数据库重要概念
基本表(CREATE TABLE、DROP TABLE、ALTER TABLE):定义表的各个属性必须指明其数据类型和长度。
基本表定义一旦被删除,表中的数据和在此表上建立的索引都将自动被删除掉。
而视图仍然保留,但已失效。
索引(CREATE INDEX、DROP INDEX):索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。
(类似于字典按字母先后顺序组织)。
所以一个表只有一个聚集索引。
视图(CREATE VIEW、DROP VIEW):视图是从其他基本表和视图导出的表,是一个虚表。
即:数据库中只存放视图的定义,而不存放视图对应的数据,数据仍然存放在导出该视图的表中。
也以在一个视图(或多个视图和基本表)上定义新的视图。
对某些可更新视图的更新转换成对相应基本表的更新。
不是所有视图都是可更新的。
事务:对数据库的一系列操作。
特点是:原子性、一致性、隔离性、持久性。
即:要么所有操作都做,要么都不做。
触发器:触发器是一类特殊的存储过程,在对表或者视图进行Insert, Delete和Update操作时,它就会被激发开始运行。
函数依赖:如果属性集合Y中每个属性的值构成的集合唯一地决定了属性集合X中每个属性的值构成的集合,则属性集合X函数依赖于属性集合Y,即Y→X。
函数依赖的逻辑蕴含:设有关系模式R(U)及其函数依赖集F,如果对于R 的任一个满足 F 的关系r 函数依赖X→Y 都成立,则称F 逻辑蕴涵X→Y,或称X→Y 可以由F 推出。
第一范式:无重复的列。
第二范式:非主属性完全依赖于主键。
第三范式:属性不依赖于其他非主属性。
3.关系数据库完整性约束、关系代数、SOL语言(深入学习再总结)
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图
CREATE INDEX --为数据库表创建一个索引
DROP INDEX --从数据库中删除索引
CREATE PROCEDURE --创建一个存储过程
DROP PROCEDURE --从数据库中删除存储过程
CREATE TRIGGER --创建一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库添加一个新模式
DROP SCHEMA --从数据库中删除一个模式
CREATE DOMAIN --创建一个数据值域
ALTER DOMAIN --改变域定义
DROP DOMAIN --从数据库中删除一个域--数据控制
GRANT --授予用户访问权限
DENY --拒绝用户访问
REVOKE --解除用户访问权限
第二章 相关理论概述
2.1数据库的概念
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。
这种数据集合具有如下特点:
尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。
从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
2、数据库体系结构
外模式模式 二维关系
逻辑层
(独立) 图1 数据库体系结构
2.2结构化查询语言SQL 、SELECT 语句
SQL 语言,是结构化查询语言(Structured Query Language)的简称。
SQL 语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL DML 和 DDL
最
终用
户
可以把SQL 分为两个部分:数据操作语言(DML) 和数据定义语言(DDL)。
SQL (结构化查询语言)是用于执行查询的语法。
但是SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了SQL 的DML 部分:
•SELECT - 从数据库表中获取数据
•UPDATE - 更新数据库表中的数据
•DELETE - 从数据库表中删除数据
•INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言(DDL) 部分使我们有能力创建或删除表格。
我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的DDL 语句:
•CREATE DATABASE - 创建新数据库
•ALTER DATABASE - 修改数据库
•CREATE TABLE - 创建新表
•ALTER TABLE - 变更(改变)数据库表
•DROP TABLE - 删除表
•CREATE INDEX - 创建索引(搜索键)
•DROP INDEX - 删除索引
2.3 关系模型与范式
关系模型中常用的关系操作包括:选择(select)、投影(project)、连接(join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。
查询的表达能力是其中最重要的部分。
范式:
1NF :在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
2NF :在1NF 的基础上,非码属性必须完全依赖于码[在1NF 基础上消除非主属性对主码的部分函数依赖]
3NF : 第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。
BCNF :对第三范式的修正,使数据库冗余度更小。
用户系统
应用系统
数据库管理系统
数据库
2.4数据建模E-R 数据建模
概念模型 逻辑模型 物理模型 数据分析 DBMS
基于现实构造逻辑关系构造建立(机器)
模型
1、E-实体(是现实中可独立存在的元素)用属性描述特征
2、标识符每个实体都有标识符,用来唯一标记实体属性
3、R-联系
属性物理关系1:1 一对一联系
1:n 一对多联系
n: m 多对多联系
概念模型
现实世界逻辑世界
对象
概念模型演化逻辑模型(表、关联)把数据库模型转变成数据库设计
规则
概念模型逻辑模型
映射
1、基于范式规则对数据表进行优化
概念-----逻辑映射规则
2、
(1)实体之间1:1联系
两个实体可合为一个实体表映射
(2)实体之间1:n联系
两个实体分别映射为两个实体表,其中关键属性映射为主键,主表中主键引入从表作为外键,其中1的一端(必有)为主表, n的一端(可选)为从表
(3)实体之间n:m联系
两个实体分别映射为两个实体主表,实体之间联系映射为联系从表,两个表的主键引入从表外键,并且可作为从表主键
2.6 触发器
触发器是一种特殊类型的存储过程,不由用户直接调用。
创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。
CREATE PROCEDURE 或CREATE TRIGGER 语句不能跨越批处理。
即存储过程或触发器始终只能在一个批处理中创建并编译到一个执行计划中。
用触发器还可以强制执行业务规则。
触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。
触发器可以强制比用CHECK 约束定义的约束更为复杂的约束。
第三章学习数据库的态度
本学期学习数据库态度尚好,迟到2次。
学习上首先从基础开始,比如数据类型、运算符号、关键字等等,然后上升到一些增删改查,还有触发、存储过程等的使用等等。
经过了一学期的学习,我从起初对数据库的认识模糊到后来清晰,深入,学到了许许多多的东西。
当然,在学习中,会遇到困难,但在自己的学习和老师的帮助下往往能解决疑惑。
本学期数据库的学习虽然结束了,但是仍然有很多知识没有学完,也有更多的知识需要深入学习,总的来说,对数据库的操作尚生疏,也不免感到学习乏味。
但是,今后将以更加端正的学习态度加深对数据库的自学习。
第四章基于图示的数据库理解
*以班级、学生、课程、学习为例,构建查询
班级(班号,班名)
学生(学号,姓名,性别,班号)
课程(课程代码,课名)
学习(学号,课程代码,成绩)
1、查询学生信息
Select *
From 学生
Order by 班号姓名
2、统计学生人数
Select count(学生)As 人数
From 学生
3、分班统计写生人数
Select 班号.Count(学号)As 人数
4、查询姓王学生信息
Select *
From 学生
Where 姓名:Like ‘王%’
5查询姓王名单学生信息
Select *
From 学生
Where 姓名Like ‘王_’
6查询选了课程代码A001的学生的人数
Select count(*)As 学生人数
From 学习
Where 课程代码=‘A001’
7、按课程统计学生选课人数、最高分、最低分、平均分
Select 课程代码Count(*)As 人数.Max(成绩)As 最高分,Min(成绩)As 最低分,Avg(成绩)As 平均分
From 学习
Group by 课程代码
8、按课程统计不及格人数
Select 课程代码Count(*)As 学习人数
From 成绩<60
Group by 课程代码
9、多表查询
(1)SQl嵌套查询(快、子查询):结果来自一个表,但条件来自多个表
(2)多表连接查询(需要查看结果时选择此查询):结果来自多个表
10、SQL嵌套查询
(1)查询王强和刘明两位学生的信息
Select *
From 学生
Where 姓名in (王强,刘明)
(2)查询选了“数据库原理”的学习人数
Select count(*) As 学习人数
From 学习
Where 课程代码in
(Select 课程代码From 课程Where 课名= ‘数据库原理’)
(3)查询课名“C语言”学分不足3的不及格人数
Select count(*) As 人数
From 学习
Where 课程代码in (Select 课程代码From 课程Where 课名=
‘C 语言’ and 学分=3) and 成绩<60
11、多表联接查询
(六)使用ER 模型进行数据建模
概念模型 逻辑模型 物理模型(设计)
1、数据分析 DBMS 构造模型 逻辑关系构造 建立(机器)
2、物理关系:
(1)、1:1 (2)、1:n (3)、n :m
(七)概念模型与逻辑模型 1、概念模型与逻辑模型之间的关系 现实世界 逻辑世界 对象
概念模型 逻辑模型 2、基于范式规则对数据表进行优化
4、实体之间1:n 联系,则两个实体分别映射为2个实体表。
其中,关键属性映射为主键,主表中主键引入从表作为外键。
演
(八)以“商品订购”为例使用SQL语言进行数据构建
、
创
建
视
图
制
造
商
(
制造商ID,名称,地址,电话)
商品(商品ID,名称,报价,存量)
销售商(销售商ID,名称,地址,电话)客户(客户ID,名称,地址,电话)
合同(合同ID,日期,客户ID,销售商ID)订购(合同ID,商品ID,合同价,数量)商品信息(商品ID,名称,制造商名称,
报价,存量,已售量,销售率)
5、存储过程——建立于数据库内,运行于数据库服务器,供外部程序前端应用中调用
基于图示的理解:
1、SQL 是一种声明式语言
2、SQL 的语法并不按照语法顺序执行
SQL 语句的执行顺序跟其语句的语法顺序并不一致。
SQL 语句的语法顺序是:
SELECT[DISTINCT]
FROM
WHERE
GROUP BY
HAVING
UNION
ORDER BY
而且:
1、FROM 才是SQL 语句执行的第一步,并非SELECT 。
数据库在执行SQL 语句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。
2、SELECT 是在大部分语句执行了之后才执行的,严格的说是在FROM 和GROUP BY 之后执行的。
理解这一点是非常重要的,这就是你不能在WHERE 中使用在SELECT 中设定别名的字段作为判断条件的原因。
3、无论在语法上还是在执行顺序上,UNION 总是排在在ORDER BY 之前。
很多人认为每个UNION 段都能使用ORDER BY 排序,但是根据SQL 语言标准和各个数据库SQL 的执行差异来看,这并不是真
的。
尽管某些数据库允许SQL 语句对子查询(subqueries)或者派生表(derived tables)进行排序,但是这并不说明这个排序在UNION 操作过后仍保持排序后的顺序。
3、SQL 语言的核心是对表的引用(table references)
4、灵活引用表能使SQL 语句变得更强大
5、SQL 语句中推荐使用表连接
使用JOIN 语句的好处在于:
安全:JOIN 和要连接的表离得非常近,这样就能避免错误。
更多连接的方式:JOIN 语句能去区分出来外连接和内连接等。
6、SQL 语句中不同的连接操作
SQL 语句中,表连接的方式从根本上分为五种:
EQUI JOIN
SEMI JOIN
ANTI JOIN
CROSS JOIN
DIVISION
7、SQL 中如同变量的派生表
派生表就是在括号之中的子查询
8、SQL 语句中GROUP BY 是对表的引用进行的操作
9、SQL 语句中的SELECT 实质上是对关系的映射
10、SQL 语句中的几个简单的关键词:DISTINCT ,UNION ,
ORDER BY 和OFFSET
集合运算(DISTINCT 和UNION )
排序运算(ORDER BY,OFFSET…FETCH)
集合运算(set operation):
集合运算主要操作在于集合上,事实上指的就是对表的一种操作。
从概念上来说,他们很好理解:
DISTINCT 在映射之后对数据进行去重
UNION 将两个子查询拼接起来并去重
UNION ALL 将两个子查询拼接起来但不去重
EXCEPT 将第二个字查询中的结果从第一个子查询中去掉INTERSECT 保留两个子查询中都有的结果并去重
排序运算(ordering operation):
排序运算跟逻辑关系无关。
这是一个SQL 特有的功能。
排序运算不仅在SQL 语句的最后,而且在SQL 语句运行的过程中也是最后执行的。
使用ORDER BY 和OFFSET…FETCH 是保证数据能够按照顺序排列的最有效的方式。
其他所有的排序方式都有一定随机性,尽管它们得到的排序结果是可重现的。
湖南商学院学年论文(课程设计)评审表。