软件工程-基础课程-数据库系统_数据库性能优化.docxVIP

软件工程-基础课程-数据库系统_数据库性能优化.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

数据库系统基础

1数据库系统概述

数据库系统是用于存储、管理和检索数据的软件系统。它由数据库、数据库管理系统(DBMS)、应用程序和数据库管理员(DBA)组成。数据库系统的核心是DBMS,它提供了一种方式来创建、维护和访问数据库。DBMS可以是关系型的,如MySQL、Oracle,也可以是非关系型的,如MongoDB、Cassandra。

1.1代码示例:创建一个简单的数据库表

--创建一个名为students的表

CREATETABLEstudents(

idINTAUTO_INCREMENTPRIMARYKEY,

nameVARCHAR(100)NOTNULL,

ageINT,

genderVARCHAR(10),

gradeINT

);

这个SQL语句创建了一个名为students的表,包含id、name、age、gender和grade五个字段。id字段是主键,自动递增。

2数据库设计与范式

数据库设计是创建数据库的过程,包括确定数据的结构、关系和存储方式。范式是数据库设计的指导原则,用于减少数据冗余和提高数据完整性。第一范式(1NF)要求每个字段都是不可分割的原子值;第二范式(2NF)要求非主键字段完全依赖于整个主键;第三范式(3NF)要求非主键字段不依赖于其他非主键字段。

2.1代码示例:将一个不符合第三范式的表转换为符合第三范式的表

假设我们有一个包含学生、课程和成绩的表,但这个表不符合第三范式,因为成绩依赖于学生和课程,而不是主键。

--原始表

CREATETABLEstudent_course(

student_idINT,

course_idINT,

course_nameVARCHAR(100),

gradeINT,

PRIMARYKEY(student_id,course_id)

);

--转换后的表

CREATETABLEstudents(

student_idINTPRIMARYKEY,

student_nameVARCHAR(100)

);

CREATETABLEcourses(

course_idINTPRIMARYKEY,

course_nameVARCHAR(100)

);

CREATETABLEgrades(

student_idINT,

course_idINT,

gradeINT,

PRIMARYKEY(student_id,course_id),

FOREIGNKEY(student_id)REFERENCESstudents(student_id),

FOREIGNKEY(course_id)REFERENCEScourses(course_id)

);

通过将原始表分解为三个表,我们消除了数据冗余,每个表都只包含关于一个实体的信息,成绩表通过外键引用学生和课程表,确保了数据的完整性。

3SQL语言基础

SQL(StructuredQueryLanguage)是用于管理和操作关系型数据库的标准语言。SQL语句可以用于创建、更新、查询和删除数据库中的数据。

3.1代码示例:使用SQL语句查询数据库

假设我们有一个students表,包含id、name、age、gender和grade五个字段,我们想要查询所有年龄大于18岁的学生信息。

--查询年龄大于18岁的学生信息

SELECT*FROMstudentsWHEREage18;

这个SQL语句将返回students表中所有年龄大于18岁的学生的信息。SELECT语句用于选择数据,FROM语句用于指定表,WHERE语句用于指定查询条件。

3.2数据样例

--插入数据

INSERTINTOstudents(name,age,gender,grade)VALUES(JohnDoe,20,Male,85);

INSERTINTOstudents(name,age,gender,grade)VALUES(JaneDoe,17,Female,90);

INSERTINTOstudents(name,age,gender,grade)VALUES(JimBrown,19,Male,78);

在这个例子中,我们向students表中插入了三条数据,然后使用SELECT语句查询年龄大于18岁的学生信息,返回的结果应该是JohnD

文档评论(0)

kkzhujl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档