导图社区 SQL Service 2008数据库技术与应用
数据库技术与应用 总思维导图(第六章比较简单 复习的时候就没做了)
编辑于2020-02-27 12:08:47SQL Service 2008 数据库技术与应用
C1: 数据库系统概述
一、四个基本概念
1、数据(Data)
定义:描述事物的符号记录
种类:
数字
文字
图形
图像
声音
语言等
特点:
数据与其语义是不可分的
语义:数据的含义
举例:93既可以指一个的体重,也可以指公交车的号码
数据模型
三要素
数据结构
层次模型、网状模型、关系模型
数据的完整性
约束、默认值也算
数据操作
查询
更新:插入、修改、删除
概念模型
E-R模型
逻辑模型
层次、网状、关系
关系模型
实体完整性
关系的主属性不能为空值
参照xxx
外键和主键的引用规则
用户自定义xxx
规定某一关系的取值范围
2、数据库(DB)
英文全称:DataBase,简称DB
定义:长期储存在计算机内、有组织的、可共享的大量数据的集合。
特征:
(1)数据库中的数据按一定的数据模型组织、描述和储存
(2)数据冗余度较小
冗余度指数据的重复
(3)数据独立性较高
(4)数据易扩展性
(5)数据可为多种用户共享——共享性
种类:
层次式数据库
网络式数据库
关系式数据库
标准结构
三级模式
外模式
用户级
概念模式
概念级:综合所有用户数据,按照统一观点构建的全局逻辑结构,是对数据库中全部数据逻辑结构和特征的总体描述,
内模式
物理级
二级映射
概念模式/内模式映射
外模式/概念模式映射
3、数据库管理系统(DBMS)
英文全称:DataBase Management System,简称DBMS
定义:位于用户与操作系统之间的一层数据管理软件
主要功能:
(1)数据定义功能
(2)数据组织、存储和管理
(3)数据操纵功能
实现对数据库的基本操作,如:增删改查
(4)数据库的事务管理和运行管理
(5)数据库的建立和维护功能
(6)其他功能
通信功能
数据转换功能
互访和互操作功能
关系型数据库管理系统实例:mySQL(免费)、Oracle(收费)
4、数据库系统(DBS)
英文全称:DataBase System,简称DBS
定义:指在计算机系统中引入数据库后的系统
组成:
(1)计算机硬件:主机、存储设备、输入/输出设备、计算机网络环境
(2)数据库管理系统(DBMS)
(3)数据库
(4)数据库管理员
与DBMS一起负责数据库的建立、使用和维护等工作
DataBase Administrator,DBA
二、四个基本概念之间的联系
数据库系统
数据库管理系统(对数据库进行管理)
数据库(长期储存在计算机内、有组织的、可共享的大量数据的集合)
数据
三、数据管理技术的产生和发展
三个阶段
(1)人工管理阶段
时间
40年代-50年代中
应用需求
主要用于科学计算
硬件状况
没有直接存取的存储设备
软件状况
没有管理数据的专门软件
数据处理方式
批处理
数据的特点
a.数据不保存在计算机内
b.应用程序管理数据
c.数据不共享
d.数据不具有独立性
应用程序与数据之间的对应关系
(2)文件系统阶段
时间
50年代-60年代中期
硬件状况
有了直接存取存储设备
软件状况
有了专门的数据管理软件
一般称为文件系统
数据处理方式
批处理
联机实时处理
数据的特点
a.数据可以长期保存
b.由文件系统管理数据
c.数据共享性差,冗余度大
d.数据独立性差
(3)数据库系统阶段
时间
60年代后期以来
硬件状况
已有大容量磁盘,硬件价格下降
软件状况
软件价格上升
数据处理方式
联机实时处理要求更多
开始提出和考虑分布处理
四、数据库系统的特点
1、数据结构化
数据库的主要特征之一
数据库系统与文件系统的本质区别
面向全组织,数据整体是结构化的,且相互之间有联系
2、数据的共享性高,冗余度低,易扩充
数据共享可以大大减少数据冗余
数据共享可以节约存储空间
数据共享能避免数据之间的不相容性与不一致性
3、数据的独立性高
独立性
物理独立性
指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的
逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的
数据独立性是由DBMS的二级映像功能来保证的
4、数据由DBMS统一管理和控制
(1)数据的安全性保护
(2)数据的完整性检查
(3)并发控制
(4)数据库恢复
发展阶段
1st 层次、网状
2nd 关系
分布式数据库系统(DDBS)
面向对象xxxxx(OODBS0
多媒体xxxxx(MDBS)
CAD、AI
数据仓库技术
内存数据库系统(MMDB)
抛弃磁盘数据管理,基于全部数据都在内存中
*补充
常用工具
对象资源管理器
查询设计器
模板资源管理器
提供脚本模板
SQL语言
数据查询语言
xx定义xx
xx操纵xx
增加、删除、修改
xx控制xx
C2: 数据库管理与使用
存储结构
逻辑存储结构
数据库对象:也叫逻辑组件
关系图、表、视图、同义词(数据库对象的别名)、可编程性、Service Broker、存储、安全性
数据库类型
用户DB
系统数据库
master
所有系统信息
model
所有数据库模板
msdb
用于计划、警报、作业
tembdb
全局资源,并用于保存显示创建的临时用户对象、不需要备份和恢复
物理xxxx
数据库文件
数据文件
主数据文件 .mdf
一个数据库只能有一个
次数据文件 .ndf
0个或多个
事物日志文件 .ldf
insert、update、delete等对数据库进行操作都会记录在这里,但select无影响的就不会记录
一个或多个
数据库文件的存储形式
数据库文件组
主文件组
只有一个,包含所有系统表//一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库所使用
用户定义的文件组
创建
create
修改
alter database
add file
modify file (修改现有文件容量)
modify name (修改数据库名)
remove file (删除文件)
扩大与收缩(了解)
子主题
附加与分离
分离
数据库文件仍保留在磁盘上,作为一种备份来使用
删除
drop database
C3: 数据表的管理与维护
数据表的创建与管理
对象资源管理器
create table
NO 1 create table S (s_no char(9) not null unique, s_name char(20) unique, city char(10), primary key(s_no)) 每句后面要用逗号分隔 所有数据定义 最前面和最后面要有括号 create table后面要加表名 只有char、varchar需要定义长度 NO 2 要限制年龄在15-25之间 (..., ..., primary key(s_no), check(age between 15 and 25)) NO 3 创建临时表 create table #temp_student (..., ...) 可以在系统数据库tempdb中查看,结束后自动删除,如果是服务器故障也会删除
修改表-alter table xxx
增加列-add zzmm char(4)
删除列-drop column zzmm
修改列-alter column zzmm char(8)
删除表-drop table std_1 drop table book,temp2 [删除多个表逗号隔开] drop table stu.dbo.temp [任何数据库可执行]
表数据的管理
|添加| insert into d_info values ('商学院','16'),(),()
|修改| update xxx set xxx
|删除| drop table-删结构和数据——数据表删除 truncate table-删除所有行释放页,保留结构 delete-每次删一行,但总的都是删除全部行——表数据删除
数据库完整性管理
数据完整性是指
正确性:一般是数据类型是否匹配
有效性:是否在定义域有效范围内
一致性:指同一事实的数据应该一致
数据库完整性类型
实体完整性
标识列
主键-一个表只能有一个主键、image和text数据类型列不能被定义为主键
唯一性约束-一个或多个列的组合值具有唯一性,可以有多个唯一性约束
唯一性索引
域xxx
check
default约束
区别于创建默认值 默认值是一种数据库对象,所以独立于表 而default约束是随着create table或者alter table定义的,删除表的时候default也被删除了
not null
引用xxx
外键
C5: 索引与视图
索引
概念
数据库自动管理与维护
占用磁盘空间
是对数据库表中的一列或多列按照一定顺序建立的列值与记录之间的对应关系表
会降低增加、删除、修改的速度
分类 (聚集、唯一、主键)
聚集
非聚集
唯一
建立的字段不能重复,创建主键或唯一性约束时,数据库引擎会自动创建一个唯一索引
管理
创建
create index on st_info(书上没有)
查看
修改
删除
对于约束使用的索引,必须先删除primary key和unique约束,才能删除索引
视图
概念
一个表或多个表或者视图导出的表
虚拟表
根据用户定义的数据结构
数据库中之存放视图的定义,不包含任何物理数据
创建
规定
只能在当前数据库建立,遵循标识符命名原则,不能与表同名
不能把规则、默认值、触发器与视图相关联
视图上创建视图,嵌套不能超过32层
不能基于临时表建立视图
CREATE VIEW st_view AS select * from st_info where st_sex='女'
用于创建视图的select语句,不能包含compute、compute by、order by、into
查询
select * from v_view
修改
ALTER VIEW st_view AS select * from st_info where st_sex='男'
删除
DROP VIEW
C4: 数据库查询
基本查询
|取别名| ①st_name 姓名 ②姓名=st_name ③st_name AS 姓名
select * from c_info /*输出所有记录,有重复列,多要查询多个列,用逗号隔开*/
select distinct st_name,st_sex from st_info /*消除重复列*/
select top 5 st_name 姓名,st_sex 性别 from st_info /*返回指定行数*/
计算列值
count(*) /*统计查询的行数,count的参数除了text、image、ntext都可以,可以使用列名也可以使用(*)*/
sum(c_credit) AS 总学分
条件查询
比较运算:='' | !<
逻辑运算:可能有多个条件,优先级NOT>AND>OR,
字符匹配运算:Like | [^]不属于指定范围或集合的任何单个字符
范围比较运算:IN(字符型) | BETWEEN(数值型和日期型)
空值比较运算:字段名IS[NOT] NULL 可以用在where里面
查询结果处理
排序输出(ORDER BY) 不能是image和text
ASC(默认升序) | DESC(降序) 可以加别名
select * from st_info order by st_sex,birthdate DESC(先按性别分组,性别一样的再按生日降序排列)
重定向输出(INTO)
把查询的结果放到一个新表里
select st_id 学号,c_no 大学计算机基础 INTO newstudent from s_c_info where c_no='9710011'
输出合并(UNION)
将不同查询的数据组组合起来,会自动删除重复列 ALL表示结果全部合并,只有最后一个select语句中才可以用order by排序,并且排序选项必须依据第一个select列表中的列
select c_name,c_credit from c_info where c_no='9710011' union select c_name,c_credit from c_info where c_no='9010023'
分组统计(GROUP BY)与筛选(HAVING)
不能用别名
where是作用于基本表 having是作用于组,必须与group by连用
COMPUTE与COMPUTE BY汇总
可以计算子组的汇总值, 也可以计算整个结果集的汇总值, 最后一句
select st_id,year(getdate())-year(birthdate) AS 年龄 from st_info where cl_name='材料科学1701' order by cl_name compute sum(year(getdate())-year(birthdate) by cl_name [有by一定有order by] distinct关键字不能和聚合函数一起用 compute子句产生非标准行,不能与select into一起用;不能使用ntext\text\image
嵌套查询
ANY
ALL
IN [等价于=ANY]
连接查询 涉及多个表的查询
自连接
一个表自己与自己建立连接,需要为表指定两个别名,且对所有的列的引用均要用别名限定,连接的特例
内连接
等值连接
inner join...on... |使用=
不等值连接
<、>、!<、!>、<>、>=、<=
外连接
select后面若是有统计函数,则后面要么出现在统计函数中,要么再group by语句中
左外连接
select a.st_id,st_name,st_sex,score from st_info a LEFT OUTER JOIN s_c_info b ON a.st_id=b.st_id where st_sex='女'
右外连接
全外连接
FULL OUTER JOIN
交叉连接
CROSS JOIN
没有where 子句,结果集为笛卡尔积——第一个表的行数✖第二个表的行数
默认文件组
容纳未分配给其他文件组的所有新对象,若没有指定默认文件组则主文件组为默认文件组。
#本地临时表——当前数据库使用 ##全局临时表——所有数据库使用
|定义外键| create table sp (..., ..., foreign key (s_no) references s(s_no), foreign key (p_no) references p(p_no))
对象资源管理器
主键约束、CHECK约束、DEFAULT约束