• 1. 113份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] http://download.csdn.net/album/detail/669 [Csharp高级编程(第6版)](共8压缩卷) http://download.csdn.net/album/detail/667 10个[精品资源]Java学习资料合辑[一] http://download.csdn.net/album/detail/663 10个C#Socket编程代码示例 http://download.csdn.net/album/detail/631 6份GDI+程序设计资源整合[全零分] http://download.csdn.net/album/detail/625 更多免费资源 http://download.csdn.net/user/cleopard 关系数据库基础
  • 2. 2数据库系统构成 数据库系统(DataBase System,简称为DBS)是指计算机系统中引入数据库后的系统,由数据库、软件(操作系统、数据库管理系统、开发工具、编译系统和应用系统等)、用户、硬件构成。数据库硬件数据库系统软件操作系统 OS 数据库管理系统 DBMS 高级语言编译系统 各种应用开发工具 应用系统用户终端用户 应用程序员 数据库管理员 数据库系统分析与设计人员
  • 3. 3数据库系统的构成图DatabaseOSDBMS应用开发工具应用程序DBA用户A用户C用户B应用程序员
  • 4. 数据库系统的构成图24有组织的 集成的 可共享的 数据集合 DBDBMSComputer SystemSQLSQLOSDBA完成某一功能的应用程序1应用程序2应用程序nDBAP 1DBAP 2DBAP n应用程序员
  • 5. 关系数据库实例5
  • 6. 6数据库管理系统 数据库管理系统(Data Base Management System,简称DBMS)是位于用户与操作系统之间的一种非常复杂的、对数据库进行管理的系统软件。它在操作系统支持下工作。在确保数据“安全可靠”的同时,提高用户使用“数据”的简明性和方便性。用户对数据的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行。
  • 7. DBMS的主要功能 数据库定义功能 允许用户用一种叫做数据定义语言的专用语言建立新的数据库和指定它们的逻辑结构(也称为模式)。 数据存取功能 使用户能够用适当的语言查询数据和更新(插入、修改和删除)数据。 数据控制功能 对数据库安全性、完整性和并发性(多用户对数据的并发使用)进行有效的控制和管理,确保数据库中数据正确有效和数据库系统的有效运行。 数据库的建立维护功能 对数据库转储、恢复、重组织、系统性能监视分析等数据库维护工作。 DBMS是由许多“系统程序”所组成的一个集合。每个程序都有自己的功能,一个或几个程序一起完成DBMS的一个或几个功能。各种DBMS的组成因系统而异,一般说来,它由语言编译处理程序;系统运行控制程序;系统建立、维护程序;数据字典等程序组成。 7
  • 8. 数据库的用户终端用户 应用程序员 数据库管理员 系统需求分析、数据库设计、系统功能设计与实现。 数据库系统软件的安装和维护 监控DBMS的运行,系统参数的配置与调整 权限管理 日常维护(备份与恢复) DB中的数据进行扩充或重组 DB的文档管理8
  • 9. 计算机硬件系统硬件 存储数据库和运行DBMS、OS的硬件资源 。 要求 需要足够大的内存来存放OS,DBMS核心模块、数据库数据缓冲区和应用程序 由于数据库中数据庞大,需要足够大的磁盘等直接存取设备存储数据 为安全,需要足够的磁带、光盘等存贮介质做数据库的备份 要求具有较高的通道能力,以提高数据传送率 要求系统支持联网能力 9
  • 10. 10目前常用的DBMS目前常用的 DBMS ORACLE(甲骨文) DB2(IBM) SYBASE Microsoft SQL Server 2000、2005(MS) MYSQL ACCESS xBASE类:Visual FoxPro dBASE 常用的开发工具 Power Builder Delphi Visual BASIC,Visual Studio .Net等。 数据库厂商提供的开发工具。例如,ORACLE的Design 2000和SYBASE的Power Designer。
  • 11. 关系模型概述关系数据库 使用关系模型的数据库 关系数据库系统 支持关系模型的数据库系统 关系模型 关系数据结构、关系操作集合和关系完整性约束三部分组成111.关系数据结构(二维表) 2.关系操作集合 3.关系完整性约束关系 模型实体完整性 参照完整性 用户定义完整性
  • 12. 12关系数据模型关系模型是用二维表格结构来表示实体以及实体间联系的模型 关系模型的数据结构 关系模型的数据结构是一个“二维表框架”组成的集合,每个二维表又可称为关系,因此可以说,关系模型是“关系框架”组成的集合。 关系模型使用的术语 关系:关系可理解为由关系(二维表)的框架和若干元组构成。 元组:表中的行。通常称为记录。 属性:表中的列,通常称为字段。 关系键:表中的某个属性组,它的值可以唯一确定一个记录。 域:属性的取值范围。 分量:记录中的一个属性值。
  • 13. 13关系数据模型-关系实例学号姓名性别年龄籍贯9901李勇男20江苏9902刘晨女19山东9903王明女20北京9999张立男18陕西学生记录表关系名关系记录(行)字段(列)关系键男 女域分量关系模式:学生(学号、姓名、性别、年龄、籍贯)字段名
  • 14. 14关系键关系键的文字定义: 在关系中能惟一标识元组的一个属性或不包含有多余属性的属性组合称为该关系的关系键。学号课程号成绩9901 9901 9902 9903C1 C2 C2 C390 80 70 80学号姓名年龄性别所在系9901 9902 9903 9904张三 李四 王五 赵六20 18 19 20男 女 女 男计算机 计算机 计算机 计算机
  • 15. 15候选键和主关系键,主属性和非主属性 候选键、主关系键 某些关系中会发现具有关系键特性的属性或属性组有多个,那么把他们都称为该关系的候选关系键,或称为候选关键字或候选码。从候选关系键中选择一个作为主关系键(也称为主键、主关键字、主码)。 为了惟一地标识表中的每一个记录,保证记录的惟一性,每个表都必须选择一个主关系键,而且只能有一个主关系键。对于任意一个表,主关系键一经选定,通常是不能随意改变的。 主属性 包含在关系键中的属性 非主属性 不包含在关系键中的属性称为非主属性
  • 16. 16外部关系键如果关系R2的一个或一组属性X不是R2的关系键,而是另一关系R1的关系键,则该属性或属性组X称为关系R2的外部关系键(或称外关键字或外部码)。外部关系键与其相符的另一个表的键起着两个表的连接和参照作用。外部关系键也称为外部键或外键。 学号姓名所在系9901 9902 9903 9904张三 李四 王五 赵六计算机 计算机 计算机 计算机课程号课程名学时数C01 C02 C03 C04高等数学 数据结构 操作系统 数据库100 70 80 60学号课程号成绩9901 9901 9902 9904 9904C01 C02 C04 C04 C0390 80 90 85 70学生关系课程关系学习成绩关系外部关系键外部关系键主关系键主关系键
  • 17. 17关系模型的完整性约束 关系模型中的操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类: 实体完整性 参照完整性 用户定义的完整性
  • 18. 18实体完整性规则规则: 主属性(关系键中包括的属性)不能取空值或部分空值的约束条件称为实体完整性规则。 目的: 如果出现空值,那么主键值就起不了唯一标识元组的作用。 DBMS利用主键值来避免元组重复。 实例: 90 80 90 85 70 C02 C04 C04 C039901 9901 9904 9904成绩课程号学号不能为空不能为空主属性
  • 19. 19参照完整性规则规则 如果关系R2的外部关系键X与关系R1的(主)关系键相符,那么外部关系键X的每个值必须在关系R1中关系键的值中找到,或者取空值。 目的 定义了外部关系键与关系键的引用规则,外部关系键的值要根据参照的关系键的值进行检查,参照该关系键的列值以确定其合法性,保持数据的一致性,不引用不存在的实体;外部关系键与关系键对应可实现两个表的关联。 实例职工表(R2)部门表(R1)主关系键外部关系键参照空值李娟 029803万名9802张山019801姓名部门编号职工编号公关部02人事部01部门名部门编号
  • 20. 20用户定义完整性规则: 用户定义的完整性是针对某一具体的实际数据库的约束条件,它由应用环境所决定。 例如: 属性的取值范围约束 数据的输入格式约束 数据类型(类型、长度、精度等)约束 空值的约束等 关系数据库管理系统应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
  • 21. 21完整性约束的作用 执行插入操作时检查完整性规则 执行插入操作时,需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。 执行删除操作时检查完整性规则 执行删除操作时,一般只需要检查参照完整性约束规则。 执行更新操作时检查完整性规则 执行更新操作时,分别进行上述两种情况。
  • 22. 22关系性质学号姓名性别年龄曾用名9901张建军男20张高升9902李萌女18李招弟9903王红军男19王小小9904赵妮女20赵小娟9901张建军男20张高升重复的 元组重复的 元组!学号姓名性别年龄9901张建军男209902李萌女189903王红军男199904赵妮女20学号姓名性别年龄9904赵妮女209901张建军男209903王红军男199902李萌女18 1、任意两个元组不能全同(不允许有重复的记录) 2、行(记录)的顺序可以任意交换
  • 23. 23关系性质 3、表中列(字段)的顺序可以任意交换学号姓名性别年龄曾用名9901张建军男20张高升9902李萌女18李招弟9903王红军男19王小小9904赵妮女20赵小娟学号姓名曾用名性别年龄9901张建军张高升男209902李萌李招弟女189903王红军王小小男199904赵妮赵小娟女20学号姓名性别年龄姓名9901张建军男20张高升9902李萌女18李招弟9903王红军男19王小小9904赵妮女20赵小娟此处的属性名不能使用姓名,属性名重复!可改用为“曾用名” 4、关系中的属性名(字段名)必须唯一
  • 24. 24关系性质学号姓名性别年龄曾用名9901张建军男20张高升9902李萌女18李招弟9903王红军119王小小9904赵妮21981/2/28赵小娟 5、属性(字段)名下的诸属性值(同列)是同类型数据,来自同一个域此处的属性值类型不对!父母孩李男 王男丁女 肖女李一 李二 王一父母孩大小李男 王男丁女 肖女李一 王一李二 父母孩李男 李男 王男丁女 丁女 肖女李一 李二 王一父母大孩小孩李男 王男丁女 肖女李一 王一李二 非规范化关系规范化关系 6、每一个分量都是不可分的数据项
  • 25. 关系代数运算关系代数运算 关系代数(Relation algebra)是施加于关系上的一组集合代数运算,每个运算都以一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。 关系代数用到的运算符 集合运算符 ∪(并)、一(差)、∩(交)、×(广义笛卡积) 专门的关系运算符 选择、(投影)、|×|(连接)、*(自然连接)、÷(除); 算术比较符: >,≥,<,≤,=,≠; 逻辑运算符 ∧(AND与)、∨(OR或)、┐(NOT非) 分类 按运算符的不同分为:传统的集合运算和专门的关系运算25
  • 26. 传统的集合运算_关系并运算26ABCa2ca4db4cABCa4da6db4cABCa2ca4db4ca6dRSR∪S关系R和关系S的并是属于R或属于S或同时属于R和S的元组组成的集合,记为R∪S。 形式定义如下:实例:
  • 27. 传统的集合运算_关系差运算27ABCa2ca4db4cABCa4da6db4cABCa2cRSR-S关系R和关系S的差是由属于R而不属于S的所有元组组成的集合,即在关系R中删去与S关系中相同的元组,组成一个新关系,记为R-S。 形式定义如下:实例:
  • 28. 传统的集合运算_关系交运算关系R和关系S的交是由既属于R又属于S的元组组成的集合,即在两个关系R与S中取相同的元组,组成一个新关系,记为R∩S。如果两个关系没有相同的元组,那么它们的交为空。R与S的交运算如图2.5(e)所示。 形式定义如下: 28ABCa2ca4db4cABCa4da6db4cABCa4db4cRSR∩S实例:
  • 29. 广义笛卡尔积29ABCa2ca4db4cABCa4da6db4cABCDEFa2ca4da2ca6da2cb4ca4da4da4da6da4db4cb4ca4db4ca6db4cb4cRSR×S实例:关系的笛卡尔积称为广义的笛卡尔积,以区别一般的集合笛卡尔积。笛卡尔积也是属于二目运算,但参加运算的两个关系不要求是同类关系。 形式定义如下:
  • 30. 选取运算30S#SNAGESEXDEPS1A20MCSS2B21FCSS3C19MMAS4D19FCIS5E20FMAS6F22MCSS#SNAGESEXDEPS1A20MCSS2B21FCSS6F22MCSSDEP=‘CS’(S) 或 5=‘CS’(S) ?求计算机系(CS)的学生基本情况第5列在指定的关系中,按给定的条件选取其中的若干个元组,组成一个新的关系的运算。 形式定义如下: 实例:
  • 31. 投影运算31S#SNAGESEXDEPS1A20MCSS2B21FCSS3C19MMAS4D19FCIS5E20FMAS6F22MCSSNDEPACSBCSCMADCIEMAFCSDEPCSMACIS对学生姓名和所在系属性取投影SN,DEP(S) 或 2,5(S)查询学生关系中都有哪些系DEP(S) 或 5(S)设关系R(X,Y),X,Y均为属性集合。关系R在属性X上的投影是在关系R中选取X属性的相应列并删去重复行,组成一个新关系。这是从关系的垂直方向上(列的角度)取子集的运算。 投影结果关系记作:实例:
  • 32. 专门的关系运算_连接运算32ABCa12ca24da34cDEd4e10ABCDEa12cd4a12ce10a24de10a34ce10RSR S B
  • 33. 专门的关系运算_等值连接运算33SDSNOSNAMEDNODNODEPTSNOSNAMEDNOD.DNODEPTC1Li0101计算机C1Li0101计算机C2Wang0102信息C2Wang0101计算机C3Jin0203园林C3Jin0202信息C4Zhang03C4Zhang0303园林C5Yang02C5Yang0202信息设有关系S和D,如下图所示。S与D在DNO属性上的等值连接结果如图所示。
  • 34. 34SQL语言概述 SQL:Structured Query Language,结构化查询语言 一种介于关系代数与关系演算之间的语言 美国1986年10月正式把SQL语言作为关系数据库的标准语言,并公布了第一个SQL语言的标准,即SQL86。此后不久,国际标准化组织(ISO)也于1987年通过了这个标准。 1989年,ISO又公布了SQL89标准。 1992年,ISO又公布了SQL92标准。 目前,新标准SQL3也正式发表。 关系数据库的标准语言 功能 数据的定义、查询、操纵、控制
  • 35. 35SQL语言的动词SQL功能动词数据查询SELECT数据定义CREATE,DROP,ALTER数据操纵INSERT,UPDATE,DELETE
  • 36. 36数据查询语句——SELECTSQL语言格式SELECT <列名> :投影 FROM <表名> :连接 WHERE <条件> :选取 GROUP BY <列名> :分组 HAVING <条件> :分组条件 ORDER BY <列名> :排序
  • 37. 37简单的SELECT查询语句例查询指定的列 查询学生的姓名年龄和性别 SELECT 姓名,年龄,性别 FROM student; 查询使用有表达式的列 SELECT子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式。 查询全体学生的姓名及其出生年份。 SELECT 姓名,2000-年龄 FROM student;
  • 38. 38比较复杂的SELECT语句例检索出至少选修三门课的学生学号、姓名、平均成绩和选课门数 SELECT S.SNO AS 学号,SN AS 姓名,AVG(GRADE) AS 平均分,COUNT(*) AS 选课门数, FROM S,SC,C WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO GROUP BY S.SNO,SN HAVING COUNT(*) >=3
  • 39. 39程序中SELECT语句的优化应用程序经常要面对海量的数据库数据,要快速的检索出所需数据,需对查询语句进行优化。 例如数据的分页显示。 分页SQL语句例: SELECT TOP PAGESIZE * FROM ZZZY WHERE ID NOT IN (SELECT TOP PAGESIZE*PAGE ID FROM ZZZY ORDER BY ID) ORDER BY ID SELECT TOP PAGESIZE * FROM ZZZY WHERE ID > (SELECT MAX(ID) FROM (SELECT TOP PAGESIZE*PAGE ID FROM ZZZY ORDER BY ID)) ORDER BY ID
  • 40. 4013份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] http://download.csdn.net/album/detail/669 [Csharp高级编程(第6版)](共8压缩卷) http://download.csdn.net/album/detail/667 10个[精品资源]Java学习资料合辑[一] http://download.csdn.net/album/detail/663 10个C#Socket编程代码示例 http://download.csdn.net/album/detail/631 6份GDI+程序设计资源整合[全零分] http://download.csdn.net/album/detail/625 更多免费资源 http://download.csdn.net/user/cleopard