数据库原理与应用程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库(Database,DB)就是存放数据的仓库,只是这个仓库是存储在计算机存储设备上的,而且是按一定的格式存储的。具有永久存储、有组织和可共享的基本特点。
数据库管理系统(DBMS)是一个专门用于实现对数据进行管理和维护的系统软件。
数据库系统(DBS)是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。{DBS包含DB、DBMS}。数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序,数据库管理员负责整个数据库系统的正常运行。
DBS的特点:①相互关联的数据集合;②较少的数据冗余;③程序与数据相互独立;④保证数据的安全和可靠;⑤最大限度地保证数据的正确性;⑥数据可以共享并能保证数据的一致性。
数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术,它包含逻辑独立性和物理独立性。物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,比如增加或删除一些列,也不影响应用程序的特性。一般将对数据的静态特征和动态特征的描述称为数据模型三要素,即在描述数据时要包括数据的基本结构、数据的约束条件(这两个属于静态特征)和定义在数据上的操作(这个属于数据的动态特征)三个方面。
概念层数据模型,也称概念模型或信息模型,它从数据的应用语意视角老抽取模型并按用户的观点来对数据和信息进行建模。常用的有实体——联系(E-R)模型:E-R方法使用的工具称为E-R图,它所描述的现实世界的信息结构称为企业模式,也称E-R模型。{实体是具有公共性质的并可相互区分的现实世界对象的集合。属性就是描述实体或者联系的性质或者特征的数据项,属于一个实体的所有实例都具有相同的性质,在E-R模型中,这些性质或特征就是属性。联系是数据之间的关联集合,是客观存在的应用语义链。包括:一对一、一对多联系、多对多}
组织层数据模式,也称组织模型,它从数据的组织方式来描述数据。包括层次模型(用树形结构组织数据)、网状模型(用图型结构组织数据)、关系模型(用简单二维表结构组织数据)和对象-关系模型(用复杂的表格以及其他结构组织数据)。主要用于DBMS的现实。{关系就是二维表。关系中的每一行数据称为一个元组。关系中的每一列是一个属性值的集合,列可以命名,称为属性名。主码也称为主键或关键字,是关系中用于唯一确定一个元组的一个属性或最小的属性组。属性的取值范围称为域。二维表的结构称为关系模式。}
关系模式的数据完整性,包括三类。①实体完整性是指关系数据库中所有的表都必须有主码而且表中不允许存在五主码值的记录、主码值相同的记录。②参照完整性指一个关系中某属性的取值受另一个关系的某属性取值范围约束的特点;外码一般出现在联系所对应的关系中,用于表示两个或多个实体之间的关联关系。③用户定义的完整性就是指关系中属性的取值范围,也就是属性的域,这样可以限制关系的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。
三级模型:①外模式(多个):最接近用户,也就是用户所看到的数据视图;②概念模式(一个):介于内模式和外模式之间的中间层次,也称为模式或逻辑模式;③内模式(一个):最接近物理存储,也就是数据的物理存储方式。
两级映像:①外模式/模式映像,保证逻辑独立性;②模式/内模式映像,保证物理独立性。SQL(结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。特点:一体化、高度非过程化、简洁、以多种方式使用。
腹有诗书气自华
功能:数据定义功能、数据控制功能、数据查询功能、数据操纵功能。
数据类型:①数值型,包括准确型(bigint大整型、int整型、smallint小整型、tinyint微整型等)和近似型。②字符串型{char(n)普通字符编码,定长;varchar(n)可变;nchar(n)统一字符编码,定长;nvarchar(n)可变}。③日期时间型,datetime,smalldatetime小日期时间型。定义基本表:CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束定义]
。。。[,表级完整性约束定义])
NOT NULL:限制列取值非空。
DEFAULT:指定列的默认值。
UNIQUE:限制列取值的不重复。CHECK:限制列的取值范围。PRIMARY KEY:主码。FOREIGN KEY:定义列为引用他表的外码。
例CREATE TABLE SC(
Sno char(7) NOT NULL,
Cno char(6) NOT NULL,
Grade smallint,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student (Sno),
FOREIGN KEY (Cno) REFERENCES Student (Cno))
删除表:DROP TABLE<表名>{[,<表名>]…}
修改表:ALTER TABLE <表名>
①ALTER COLUMN <列名><新数据类型> ——修改列定义
②DROP COLUMN <列名> ——删除列
③ADD <列名><新数据类型><约束> ——添加新列
④ADD [constraint<约束名>]约束定义——添加约束
⑤DROP [constraint]<约束名> ——删除约束
数据完整性:实体完整性(PRIMARY KEY)、引用完整性(FOREIGN KEY)和用户定义的完整性{默认值DEFAULT约束、列值取值范围CHECK约束、唯一值UNIQUE约束}。
查询语句的基本结构:SELECT<目标列名序列>——需要哪些列+ FROM<数据源> ——来自于哪些表+ WHERE<检索条件表达式>——根据什么条件|
GROUP BY<分组依据列> | HA VING<组提取条件> | ORDER BY<排序依据列>
单表查询:1、选择表中若干列;、
2、选择表中的若干元组:(1)消除取值相同的行,例SELECT DISTINCT Sno FROM SC (2)满足条件的元组,①比较大小,例查询20岁以下的学生姓名和年龄。
SELECT Sname ,Sage FROM Student WHERE Sage<20
②确定范围,可加NOT,例查询20~23岁之间的学生的姓名、所在系和年龄。
SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23 ③确定集合,可加NOT,例查询信息系、数学系、计算机系学生的姓名和性别。SELECT Sname,Ssex FROM Student WHERE Sdept IN (‘信息系’、‘数学系’、‘计算机系’) ④字符串匹配,用LIKE,可加NOT。-(下划线)指匹配任意一个字符;%(百分号)指匹配0或多个字符;[ ] 指匹配[ ]中的任意一个字符;[^ ] 指不匹配[ ]中的任意一个字符。例查询名字中第二个字为“小”或“大”的学生的姓名和学号。
SELECT Sname,Sno FROM Student WHERE Sname LIKE ‘-[小大]%’
⑤涉及空值的查询,NULL,例查询没有考试成绩的学生的学号和相应的课程号。
SELECT Sname,Cno FROM SC WHERE Grade IS NULL
腹有诗书气自华