2024年数据库实验报告_第1页
2024年数据库实验报告_第2页
2024年数据库实验报告_第3页
2024年数据库实验报告_第4页
2024年数据库实验报告_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统原理課程设计總結汇报學院:软件學院专业:软件工程年级:學号:2647姓名:李野開发环境Windows7系统DBMS系统架构采用向量的存储构造存储数据字典信息;属性信息,表构造,索引构造,顾客授权机制都用對应的类表达;将表实体(表中内容)存储在文献中,以便查阅;每當执行對应的SQL語句時只需查阅数据字典及修改数据文献。3、DBMS重要功能模块(1)DDL功能模拟(2)DML功能模拟(3)关系数据库系统的查询优化(4)DCL功能模拟3.1SQL語言的詞法和語法分析功能简介判断输入的SQL語句与否符合詞法以及語法规则有关理论将输入的文本當成一种字符串来处理,通過匹配该字符串中的关键字来确定要做什么功能,若都不能匹配,则阐明出現詞法或語法錯误。算法描述将输入的文本保留在字符串s1中,将s1用换行符“\n”分割,保留在array[]中,扫描字符串数组中的每個组员。若以“createtable”開頭,查找information文献与否具有“createtable”後的表的信息,假如有,则返回true,表达数据字典中已經有该表,若返回false,表达数据字典中没有该表信息,则把對应的属性名及其类型写進数据字典,并標明与否有主外键。若以“droptable”開頭,则调用“drop”函数表达删除表。若以“altertable”開頭,判断其後与否有“add”或“drop”,“add”表达添加属性,“drop”表达删除属性。若以“insert”開頭,调用“insert()”函数,表达插入元组。若以“delete”開頭,调用“delete()”函数,表达删除元组。若以“update”開頭,判断其後与否有“where”条件,若有,则调用“update()”函数,否则调用“update0()”函数,表达修改對应的元组。若以“select”開頭,判断其後与否有“*”,若有,则调用“selectall()”函数,否则调用“select()”函数,表达查询。若以“createuniqueindex”開頭,则调用“index()”函数,表达创立索引。若以“dropindex”開頭,则调用“dropindex()”函数,表达删除索引。程序流程图表3.1-13.2创立数据库及数据操作功能功能简介实現建立数据库表构造的功能。支持整型、符點型、字符型数据。以文献形式保留基本表。建立對应的数据字典。2、实現输入数据库记录的功能。3、实現删除数据库记录的功能。4、实現修改数据库记录的功能。5、实現显示数据库构造和内容(以表格形式显示)。6、实目前已經有的关系中添加属性的功能;7、实現從已經有的关系中删除属性的功能;8、实現删除表的功能。(2)有关理论通過编写一系列的SQL語句,实現创立表,删除表,插入属性,删除属性,插入元组,删除元组,修改元组,查找元组等一系列操作。(3)算法描述a.创立表首先判断该表与否存在,若不存在则将createtable後的語句保留,即将属性名及类型存储到数据字典中,否则输出“该表已存在”。b.删除表首先在数据字典中将该表信息找到,并将其删除,再找到该数据文献,也将其删除,若该表有索引文献,也将该索引文献删除。c.添加属性在数据字典中找到该表位置,将要添加的属性名及类型追加到末尾。d.删除属性在数据字典中找到该表并找到该属性,将该属性删除,找到该表的数据文献,删除此文献中该属性域。e.插入元组讀数据字典,找到该文献,并记录该表属性的名字及类型与要插入的数据進行匹配,此時注意类型為“Int”“float”型的输入与否對的,還要注意“char()”类型与否超界。若判断完毕,将這些数据写到数据文献末尾,若该表有索引文献,還要基于插入新元组後的表建立新索引。f.删除元组查找数据文献,找到与“where”後的条件相符的元组,并删除。g.修改元组首先查看与否有“where”条件,若没有,则将数据文献所有讀出,并将数据文献改成“set”後的条件;否则查找数据文献并所有讀出,找到与“where”後的条件相符的元组,根据“set”後的条件進行修改,并写回文献中。程序流程图a.创立表程序流程图表3.2-1b.删除表程序流程图表3.3-2c.添加/删除属性程序流程图表3.2-3d.插入元组程序流程图表3.2-4e.删除元组程序流程图表3.3-5f.修改元组程序流程图表3.2-6测试用例与试验成果创立表测试用例:createtables(s#char(9)snamechar(8)ageintsexchar(2)primarykeys#)createtablec(c#char(5)cnamechar(20)teacherchar(8)primarykeyc#)createtablesc(s#char(9)c#char(5)gradefloatprimaryoutkeys#fromsprimaryoutkeyc#fromc)试验成果:b.删除表测试用例:droptablesc试验成果:C:插入元组测试用例:insertintosvalues('s1','lou',21,'F')insertintosvalues('s2','lu',20,'F')insertintosvalues('s3','ha',22,'M')insertintosvalues('s4','zhang',21,'F')insertintosvalues('s5','qian',20,'M')insertintosvalues('s6','sun',18,'F')insertintosvalues('s7','lisan',21,'F')insertintosvalues('s8','qian',20,'M')insertintosvalues('s9','wugozi',18,'F')insertintocvalues('c1','math','zhao')insertintocvalues('c2','chinese','qian')insertintocvalues('c3','english','sun')insertintocvalues('c4','cs','li')insertintocvalues('c5','java','zhou')insertintocvalues('c6','c++','wu')insertintocvalues('c7','jsp','zheng')insertintocvalues('c8','j2ee','wang')insertintocvalues('c9','asp','sima')insertintoscvalues('s1','c1',67)insertintoscvalues('s2','c2',80)insertintoscvalues('s3','c3',100)insertintoscvalues('s4','c4',99)insertintoscvalues('s5','c5',87)insertintoscvalues('s6','c6',78)insertintoscvalues('s7','c7',90)insertintoscvalues('s8','c8',87)insertintoscvalues('s9','c9',78)试验成果:d:删除元组测试用例:deletefromscwhere(sc.s#='s6')试验成果:e:修改元组测试用例:updatescsetscore=120wheres#='s5'试验成果:f:添加属性测试用例:Altertablesaddschoolchar(20)试验成果:g:删除属性测试用例:Altertabledropschool3.3索引的创立及删除功能简介為某关系的主属性建立索引运用索引属性完毕选择操作,记录完毕操作花费的時间,在建立索引前的关系上执行同样的选择操作并進行時间代价的比较。运用索引属性完毕连接操作,记录完毕操作花费的時间,在建立索引前的关系上执行同样的选择操作并進行時间代价的比较。删除索引有关理论默认每個块有50個字节,数据文献中的每個元组有自已的首指针(指向元组首部的文献指针),索引文献中存储的是属性域值及其块号(块号通過其首指针/50得到)。算法描述创立索引针對表的主键建立索引文献,找到数据文献中要建立索引的属性域值,并记录该元组的首指针,将其保留在索引文献中。b.运用索引属性完毕选择操作在索引文献中找到“select”語句中“where”後的条件波及的属性(由于是基于主键建立的索引,因此只能通過主键的索引文献来查找對应的信息),记录索引域後的块号,将块号*50就能得到對应的文献指针,通過文献指针讀数据文献,就能找到對应的元组。c.运用索引属性完毕连接操作d.删除索引找到對应的索引文献将其永久删除程序流程图创立索引文献表3.3-1运用索引属性完毕选择操作表3.3-2删除索引文献表3.3-4测试用例与试验成果a:创立索引文献测试用例:createindexindexons试验成果:b:运用索引选择3.4查询功能功能简介实現全关系选择操作实現單关系投影操作实現單关系选择操作(容許多条件)实現單关系的选择投影操作(容許多条件)实現两個关系和多种关系的连接操作实現两個关系和多种关系的选择和连接操作实現两個关系和多种关系的选择、投影和连接操作(2)有关理论(3)算法描述a.全关系的选择操作扫描数据字典,判断与否有该表,假如有,则扫描数据文献,将数据文献中内容所有输出。b.实現單关系的投影操作扫描数据字典,判断与否有该表,若有该表,记录要投影的属性是第几种,扫描数据文献,将每個元组中要查询的属性输出。c.实現單关系的选择操作(容許多条件)扫描数据字典,判断与否有该表,若有该表,扫描数据文献,运用循环将满足“where”後条件的元组选出。d.实現單关系的选择投影操作(容許多条件)扫描数据字典,判断与否有该表,若有该表,则记录需要投影的属性是第几种,查找数据文献,运用循环将满足“where”条件的元组找出并属性對应的属性值。e.实現两個关系和多种关系的连接操作扫描数据字典,判断与否有這两個表,若有,则查找有关属性,将两個表中的有关属性根据条件進行匹配,若匹配成功,则表达连接成功,输出连接成果。f.实現两個关系和多种关系的选择和连接操作在以上的连接成果中挑选符合条件的元组输出。g.实現两個关系和多种关系的选择、投影和连接操作在以上的成果中选择要投影的属性,输出。程序流程图全关系的选择操作表3.4-1b.实現單关系的投影操作表3.4-2c.实現單关系的选择操作(容許多条件)表3,4-3d.实現單关系的选择投影操作(容許多条件)表3.4-4测试用例与试验成果测试用例:selects#,sname,age,sexfromswheres.sname='qian'ands.age>19试验成果:测试用例:selectsname,age,sexfromswheres.s#='s6'ands.age=18ors.sname='li'试验成果:测试用例:links,scbasesc试验成果:测试用例:links,c,scbasesc试验成果:3.5查询优化功能简介在做两個表连接時,先将需要用到的元组找到,并不做笛卡尔积,這在一定程度上減少了所有选择的時间。有关理论在做两個表连接時,需要名字及类型相似的属性用一定的条件進行匹配,假如在做笛卡尔积之前就用這些条件把要用到的元组选出来,既省空间又省時间。算法描述首先查看表与否存在,若存在查找波及到的属性,记录“where”後的条件,将两個表中符合条件的元组都取出,将這些元组做连接。程序流程图表3.5-13.6数据库保护功能功能简介此DBMS系统有两种顾客:管理员,一般顾客。有关理论插入元组、修改元组時,匹配每個属性的类型,假如类型及長度输入有误,则提醒输入錯误不写入数据源文献,若符合条件,则查看基于每個属性与否有索引文献,假如有,则重写索引文献。修改元组時也要判断类型及長度与否匹配,也要重写對应的索引文献。每次做對应操作前先考虑数据字典中与否有该表,与否有要查询的属性。算法描述例如在做插入元组時,首先查找数据字典有無待插入的表,假如有,则记录每個属性类型及長度,将待插入数据与属性進行一一比對,一旦有一种记录不符合规定,也無法插入表中。程序流程图表3.6-14、總結通過對于DBMS系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论