您的位置 首页 > 资格资历

数据库课程设计报告总结(数据库课程学习总结)

大家好,数据库课程设计报告总结相信很多的网友都不是很明白,包括数据库课程学习总结也是一样,不过没有关系,接下来就来为大家分享关于数据库课程设计报告总结和数据库课程学习总结的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

目录第1章绪论一、数据库的4个基本概念二、数据库系统的特点三、概念模型在信息世界中重要的基本概念四、关系模型五、数据库系统的结构

第2章关系数据库一、关系数据结构及形式化定义二、数据库系统的特点三、关系的完整性四、关系代数第3章关系数据库标准语言SQL一、数据的定义二、查询Query第4章数据库安全性一、安全标准</a二、数据库安全性控制三、试图机制四、数据加密第5章数据库完整性一、三大完整性二、触发器(trigger)+存储过程

数据是数据库中存储的基本对象。描述事物的符号记录称为数据。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。

数据库时长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统提供的语言功能:数据定义语言DDL、数据操纵语言DML。

数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统。一般简称数据库系统为数据库。

?数据结构化结构化是指数据以结构方式存储(字段名,记录组成的二维表);而不是以文本(无结构)、HTML(半结构化)等方式存储

?数据的共享性高,冗余度低且易扩充

?数据独立性高?物理独立性?指用户的应用程序与数据库中数据的物理存储是相互独立的。即:当数据的物理存储改变了,应用程序不用改变。?逻辑独立性?指用户的应用程序与数据库的逻辑结构是相互独立的。即:数据的逻辑结构改变了,应用程序不用改变。

(1)实体:客观存在并可相互区别的事物称为实体(可以是具体的人、事、物或抽象的概念)(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。(3)码:唯一标识实体的属性集称为码。如学号是学生实体的码。(4)实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型。如学生(学号,姓名,性别,院系,出生年月)。(5)实体集:同一类型实体的集合称为实体集。如全体学生。(6)联系:实体之间的联系通常是指不同实体集之间的联系。有一对一,一对多,多对多等类型。

关系模型由一组关系构成,每个关系的数据结构是一张规范化的二维表。下面是相关术语。

型(Type):对某一类数据的结构和属性的说明值(Value):是型的一个具体赋值?模式(Schema)?数据库逻辑结构和特征的抽象描述?是型的描述,不涉及具体值?反映的是数据的结构及其联系?模式是相对稳定的?实例(Instance)?模式的一个具体值?反映数据库某一时刻的状态?同一个模式可以有很多实例?实例随数据库中的数据的更新而变动

数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,如图所示

(1)模式(也称逻辑模式)是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。是数据库系统模式结构的中间层(2)外模式(也称子模式或用户模式)是用户使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。介于模式与应用之间。

(3)内模式(也称存储模式)是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式

关系:单一的数据结构现实世界的实体及实体间的各种联系均用关系来表示二维表:逻辑结构

给定一组域D1,D2,…,Dn,允许其中某些域是相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di?Di,i=1,2,…,n}

例如:假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积:A×B={(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}

笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。例如:在A×B={(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}中,(a,0),(a,1)等都是2元组

笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量例如:a,b,0,1等都是分量

基数:若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:例如:集合A={a,b}基数为2,集合B={0,1,2}基数为3,A×B={(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}的基数为2×3=6

关系是一个二维表。表的每行对应一个元组,表的每列对应一个属性。

?候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。简单的情况:候选码只包含一个属性。最极端的情况:所有属性组是候选码,称为全码(第六章详解P186)?主码:若一个关系有多个候选码,则选定其中一个为主码?主属性:候选码的诸属性称为主属性。不包含在任何侯选码中的属性称为非主属性或非码属性。

关系的三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。

关系的描述称为关系模式。表示为R(U,D,DOM,F)。

R关系名U组成该关系的属性名集合DU中属性所来自的域DOM属性向域的映象的集合F属性间数据的依赖关系的集合(数据依赖将在第六章详细叙述)

例:导师(SUPERVISOR)和研究生(POSTGRADUATE)出自同一个域——人(PERSON),在模式中定义属性向域的映象,说明它们分别出自哪个域:

DOM(SUPERVISOR)\n=DOM(POSTGRADUATE)\n=PERSON\n123二、关系操作

?常用的关系操作?查询:选择、投影、连接、除、并、差、交、笛卡尔积(选择、投影、并、差、笛卡尔基是5种基本操作)【2.4节关系代数详细讲解这部分内容】?更新:插入、删除、修改

三大完整性原则分别是:实体完整性、参照完整性、用户自定义完整性。

若属性A是基本关系R的主属性,则属性A不能取空值。可以简单记忆为:主属性不能为空

关系间的引用比如:学生实体、专业实体(主码用下划线表示)。学生(学号,姓名,性别,专业号,年龄),专业(专业号,专业名)。这个例子中:学生关系引用了专业关系的主码“专业号”,学生关系中的“专业号”值必须是确实存在的专业的专业号。

外码(ForeignKey)设F是基本关系R的一个或一组属性,但不是关系R的码(ps:码可唯一确定一个元组)。如果F与基本关系S的主码Ks相对应,则称F是R的外码,基本关系R称为参照关系(ReferencingRelation),基本关系S称为被参照关系(ReferencedRelation)。

参照完整性原则:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为:要么取空值(F的每个属性值均为空值),要么等于S中某个元组的主码值简单记忆:外码要么为空,要么源自于被参照关系的主码。

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。如年龄必须是10~25岁。

一种抽象的查询语言,用对关系的运算来表达查询。

再谈笛卡尔积?严格地讲应该是广义的笛卡尔积?R:n目关系,k1个元组?S:m目关系,k2个元组?R×S?列:(n+m)列元组的集合?元组的前n列是关系R的一个元组?后m列是关系S的一个元组?行:k1×k2个元组(基数)?R×S={trts|tr?R∧ts?S}

σF?={t|t?R∧F(t)=‘真’}F:选择条件,是一个逻辑表达式,取值为“真”或“假”查询信息系(IS系)全体学生。σSdept=‘IS’(Student)

πA?={t[A]|t?R}A:R中的属性列查询学生关系Student中都有哪些系。去掉了重复的πSdept(Student)

R连接符号+条件S={|tr?R∧ts?S∧tr[A]θts[B]}

?两类常用连接运算?等值连接(equijoin)?θ为“=”的连接运算称为等值连接?从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:?自然连接(Naturaljoin)?自然连接是一种特殊的等值连接?两个关系中进行比较的分量必须是相同的属性组?在结果中把重复的属性列去掉?自然连接的含义?悬浮元组(Danglingtuple)?两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组。?外连接(OuterJoin):如果把悬浮元组也保存在结果关系中,而在其他属性上,填空值(Null),就叫做外连接?左外连接(LEFTOUTERJOIN或LEFTJOIN)?只保留左边关系R中的悬浮元组?右外连接(RIGHTOUTERJOIN或RIGHTJOIN)?只保留右边关系S中的悬浮元组

象集:给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]|t?R,t[X]=x},它表示R中属性组X上值为x的诸元组在Z上分量的集合(t[X]表示元组t中相应于属性X的一个分量)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:R÷S={tr[X]|tr?R∧πY(S)?Yx}Yx:x在R中的象集,x=tr[X]

SQLServer数据定义——模式与基本表操作

--建立模式\nCREATESCHEMA模式名AUTHORIZATION用户名\n--删除模式(前提删除该模式下的所有内容,如删除基本表droptabletest.tab1)\ndropschematest\n12342.基本表的定义、删除与修改

--基本表的定义\ncreatetable表名(\n\t属性名类型约束\n);\n--如建立学生表Student\ncreatetableStudent(\n\tSnochar(9)primarykey,--列级完整性约束条件,Sno为主码\n\tSnamevarchar(10),--表中的Sname不可有重复值\n\tSsexchar(2),\n\tSagesmallint,\n\tSdeptchar(20)\n)\n--基本表的修改\naltertable表名+要更改的内容\n--如向Student表中增加“入学时间”列,其类型为日期\naltertableStudentaddSentrancedate;\n--删除基本表\ndroptable表名\n123456789101112131415161718二、查询Query

查询涉及的知识点很多,关键是嵌套查询和子查询部分,是难点也是重点。囿于篇幅,不方便把知识点一一罗列,这里放上之前的链接,结合起来复习。就不多写了,自己慢慢消化!!

SQLServer——索引+基于单表的数据插入与简单查询【1】2021-4-3课程——SQLServer查询【2】2021-4-5课程——SQLServer查询【3】2021-4-6课程——SQLServer查询【4】2021-4-12课程——SQLServer查询【5】+数据更新+空值处理+视图

记住CC标准,是评估信息产品安全性的主要标准。

存取控制机制主要包括定义用户权限和合法权限检查两部分。定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统。C2级的数据库管理系统支持自主存取控制,B1级的支持强制存取控制。

(1)用户权限有两个要素组成:数据库对象和操作类型。在数据库系统中,定义存取权限称为授权(authorization)。

GRANT语句向用户授予权限REVOKE语句收回已经授予用户的权限

GRANT在授予(grant)时,如果指定了withgrantoption子句,说明被授予权限的用户还可以把这种权限再授予其他的用户。

PS:①对属性列的授权时必须明确指出相应属性列名②若授予所有用户使用public③标准SQL在指定基本表时要写table,而T-SQL不写!!

REVOKE格式和注意点基本与GRANT操作相同,只是把grant换成revoke

数据库角色:被命名的一组与数据库操作相关的权限。角色是权限的集合

--角色的创建\nCREATEROLE<角色名>\n--给角色授权和收回权限同用户,不再赘述\n1234.强制存取控制(MAC)每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象,具有合法许可证的用户才可以存取

在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类。主体是系统中的活动实体?数据库管理系统所管理的实际用户客体是系统中的被动实体?文件、基本表、索引、视图?两类常用连接运算?等值连接(equijoin)??敏感度标记(Label)?对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)敏感度标记分成若干级别:?绝密(TopSecret,TS)?机密(Secret,S)?可信(Confidential,C)?公开(Public,P)?TS>=S>=C>=P?主体的敏感度标记称为许可证级别(ClearanceLevel)?客体的敏感度标记称为密级(ClassificationLevel)

?强制存取控制规则?仅当主体的许可证级别大于或等于客体的密级时,该主体才能读相应的客体?仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体

为不同的用户定义不同的机制,把数据对象限制在一定范围内。视图机制间接地实现支持存取谓词的用户权限定义

数据加密主要包括存储加密和传输加密

以主码作为唯一性标识,竹马中的属性即主属性不能取空值。用PRIMARYKEY定义插入或更新操作时,DBMS按照实体完整性规则自动进行检查。(1)检查主码值是否唯一,如果不唯一则拒绝插入或修改(2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

参照和被参照关系。主码和外码。用FOREIGNKEY短语定义哪些列为外码。用REFERENCES短语指明这些外码参照哪些表的主码

?CREATETABLE时定义属性上的约束条件?列值非空(NOTNULL)?列值唯一(UNIQUE)?检查列值是否满足一个条件表达式(CHECK)

?在CREATETABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制

?触发器类型?行级触发器(FOREACHROW)?语句级触发器(FOREACHSTATEMENT)?AFTER/BEFORE是触发的时机?AFTER表示在触发事件的操作执行之后激活触发器?BEFORE表示在触发事件的操作执行之前激活触发器?触发器的执行是由触发事件激活的,并由数据库服务器自动执行!?删除触发器

--标准SQL\nDROPTRIGGER<触发器名>ON<表名>\n--T-SQL\ndroptrigger触发器名;\n--或者这样写,下面这种写法更好,类似删表,如果存在才删除\nif(object_id('触发器名')isnotnull)\n\tdroptrigger触发器名;\n1234567

?存储过程由过程化SQL语句,经编译和优化后存储在数据库服务器中,可以被反复调用,运行速度较快。

CREATEORREPLACEPROCEDURE过程名([参数1,参数2,…])AS<过程化SQL块>;

?T-SQL典型例子,用以说明建立过程

if(exists(select*fromsys.objectswherename='Proc_TRANSFER'))\ndropprocedureProc_TRANSFER\ngo\ncreateprocedureProc_TRANSFER\n@inAccountint,@outAccountint,@amountfloat\n/*定义存储过程TRANSFER,参数为转入账户、转出账户、转账额度*/\nas\nbegintransactionTRANS\n\tdeclare\t/*定义变量*/\n\t@totalDepositOutfloat,\n\t@totalDepositInfloat,\n\t@inAccountnumint;\n\t/*检查转出账户的余额*/\n\tselect@totalDepositOut=totalfromAccountwhereaccountnum=@outAccount;\n\t/*如果转出账户不存在或账户中没有存款*/\n\tif@totalDepositOutisnull\t\n\t\tbegin\n\t\t\tprint'转出账户不存在或账户中没有存款'\n\t\t\trollbacktransactionTRANS;\t/*回滚事务*/\n\t\t\treturn;\n\t\tend;\n\t/*如果账户存款不足*/\n\tif@totalDepositOut<@amount\t\n\t\tbegin\n\t\t\tprint'账户存款不足'\n\t\t\trollbacktransactionTRANS;\t\t\t\t/*回滚事务*/\n\t\t\treturn;\n\t\tend\n\t/*检查转入账户的状态*/\n\tselect@inAccountnum=accountnumfromAccount\twhereaccountnum=@inAccount;\n\t/*如果转入账户不存在*/\n\tif@inAccountnumisnull\t\t\n\t\tbegin\n\t\t\tprint'转入账户不存在'\n\t\trollbacktransactionTRANS;\t\t\t\t/*回滚事务*/\n\t\t\treturn;\n\t\tend;\n\t/*如果条件都没有异常,开始转账。*/\n\tbegin\n\t\tupdateAccountsettotal=total-@amountwhereaccountnum=@outAccount;/*修改转出账户余额,减去转出额*/\n\t\tupdateAccountsettotal=total+@amountwhereaccountnum=@inAccount;/*修改转入账户余额,增加转入额*/\n\t\tprint'转账完成,请取走银行卡'\n\t\tcommittransactionTRANS;\t/*提交转账事务*/\n\t\treturn;\n\tend\n123456789101112131415161718192021222324252627282930313233343536373839404142434445

?执行存储过程:T-SQL是用exec,标准SQL是call或者perform

?修改存储过程:只需将创建时的create改成alter

同:都是持久性存储模块异:函数必须指定返回的类型

CREATEORREPLACEFUNCTION函数名([参数1,参数2,…])RETURNS<类型>AS<过程化SQL块>;

CALL/SELECT函数名([参数1,参数2,…]);

ALTERFUNCTION过程名1RENAMETO过程名2;

下面是T-SQL函数的相关内容,拿个练习的例子说

如果你还想了解更多这方面的信息,记得收藏关注本站。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023