SQL数据库基础知识集合
- 格式:doc
- 大小:639.00 KB
- 文档页数:17
sql数据库运维基础知识SQL数据库运维基础知识一、什么是SQL数据库运维?SQL数据库运维是指对SQL数据库进行管理和维护的工作,包括数据库的安装、配置、备份与恢复、性能调优、监控和故障处理等。
SQL数据库是一种使用结构化查询语言(SQL)进行操作的数据库,常见的SQL数据库包括MySQL、Oracle、SQL Server等。
二、数据库的安装与配置数据库的安装与配置是SQL数据库运维的重要一环。
在安装数据库之前,需要先确定数据库版本和操作系统的兼容性,并根据硬件配置选择合适的安装方式。
安装过程中需要设置数据库的相关参数,如数据目录、端口号、字符集等。
配置完成后,还需要进行必要的安全设置,如设置管理员密码、限制远程访问等。
三、数据库的备份与恢复数据库的备份与恢复是保证数据库数据安全和可靠性的重要手段。
备份是指将数据库中的数据和日志文件复制到其他存储介质的过程,常见的备份方式包括完全备份、增量备份和差异备份。
恢复是指在数据库发生故障或数据丢失时,将备份的数据和日志文件还原到正常状态的过程。
四、数据库的性能调优数据库的性能调优是提高数据库性能的关键工作。
通过监控数据库的运行状态,找出性能瓶颈,采取相应的措施进行优化。
常见的性能调优方法包括索引优化、查询优化、表分区、缓存调优等。
还可以通过调整数据库参数,如内存大小、并发连接数等来提高数据库的性能。
五、数据库的监控与故障处理数据库的监控是保证数据库稳定运行的重要手段。
通过监控数据库的运行状态,可以及时发现异常情况并进行处理。
常见的监控指标包括CPU利用率、内存利用率、磁盘空间利用率、数据库连接数、慢查询等。
在发生故障时,需要快速定位问题,并采取相应的措施进行处理,以尽快恢复数据库的正常运行。
六、数据库的安全管理数据库的安全管理是保护数据库免受未经授权访问和恶意攻击的重要工作。
常见的安全管理措施包括权限管理、访问控制、数据加密、审计日志等。
需要为数据库用户分配适当的权限,并限制敏感数据的访问。
SQL Server基本知识点_简答第1章数据库技术基础一、数据管理技术的发展历程P2-41、人工管理阶段:应用程序完全依赖数据,并且数据大量重复存放。
但是数据不独立、不共享、不保存。
2、文件系统管理阶段:数据与应用程序分离,数据独立存放在数据文件中,数据可以反复使用和保存。
应用程序通过文件系统与数据文件发生联系,但数据共享性差,冗余度大,无集中管理。
3、数据库系统管理阶段:对所有数据实行统一规划管理,数据按一定的结构组织在一起,数据和应用程序独立。
数据库中数据能够满足所有用户的不同要求,减少了数据存储冗余、实现数据共享、保障数据安全及高效检索和处理数据。
二、数据库系统的组成P7-9数据库系统是一个安装了数据库管理系统和数据库的计算机系统,用来组织、存储和处理大量的数据信息。
主要包括:计算机系统(硬件和基本软件)、数据库管理系统、数据库、应用程序系统、使用和维护数据库的用户(数据库管理员、应用设计人员、最终用户等)。
三、数据库系统的三级模式体系结构P10-11数据库系统的三级模式由外模式、概念模式(简称模式)和内模式以及2个映射(内模式——模式映射和模式——子模式映射)组成。
1、外模式:又称子模式,是某个或某几个用户所看到的数据库的数据视图(外部视图),由对用户数据文件的逻辑结构描述以及和全局视图中文件对应关系的描述组成。
外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。
一个子模式可以由多个用户共享,而一个用户只能使用一个子模式。
2、模式:又称概念模式或逻辑模式,是综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述以及存储视图中文件对应关系的描述,是所有用户的公共数据视图(全局视图)。
3、内模式:又称存储模式,由对存储视图中全体数据文件的存储结构的描述和对存储介质参数的描述组成,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存介质上的数据库。
sql server数据库基础知识SQL Server数据库基础知识SQL Server是一种基于关系型数据库技术开发的数据库管理系统,是Microsoft旗下的重要产品之一。
它是一种可靠性高、安全性好、性能强大的数据库管理软件,被广泛应用于企业的数据管理、业务处理及信息分析等方面。
为了更好地使用SQL Server,需要了解一些基础知识。
以下将从以下几个方面介绍SQL Server数据库的基础知识。
一、SQL Server的安装和配置SQL Server的安装和配置需要几个关键步骤,包括选择目标安装路径和实例名,设置SQL Server的身份验证方式(Windows身份验证或Windows和SQL Server身份验证),设置SQL Server的安全配置选项等等。
此外,在SQL Server的安装过程中还需要注意一些特殊的安装选项。
当SQL Server安装完成后,需要配置SQL Server的一些关键服务、网络配置、数据库引擎等,以确保SQL Server正常工作。
二、SQL Server数据库结构SQL Server的数据库结构包括多个对象,其中最基础的对象是数据库和表。
数据库是一个逻辑容器,用于存储数据和它们之间的关系,它可被视为一组关联数据的集合。
而表则是一种数据结构,用于存储数据。
表有很多列,每个列包含一个数据类型和一个有意义的名称。
此外,SQL Server还包括其他对象,如视图、存储过程、函数、触发器和索引等,这些对象在相关领域中也具有非常重要的作用。
三、SQL Server中的数据类型SQL Server支持多种数据类型,包括数值类型、字符类型、二进制类型、日期和时间类型等等。
在设计数据库结构时,选择适当的数据类型非常重要,它决定了数据在存储和检索过程中的准确性和有效性。
四、SQL Server中的数据逻辑操作SQL Server支持多种数据逻辑操作,包括增、删、改、查等等。
sql 数据库面试题SQL数据库面试题1. 数据库基础知识数据库是用来存储、管理和操作大量数据的工具。
在进行SQL数据库面试时,你可能会被问到一些基础的数据库知识问题。
1.1 数据库的定义和作用数据库是一个组织数据的集合,可以存储和管理大量结构化数据。
它的作用是提供数据的持久化存储和高效的数据访问。
1.2 关系型数据库和非关系型数据库的区别关系型数据库使用表格来组织和管理数据,通过定义表格之间的关系来建立数据模型。
非关系型数据库则以其他形式来存储和组织数据,例如键值对、文档、图形等。
1.3 主键和外键的概念和作用主键是表格中的一列或多列,用来唯一标识每一行数据。
外键是表格中的一列,用来建立表格之间的联系。
1.4 视图的作用和优势视图是虚拟的表格,它是从一个或多个基本表中导出的。
它可以简化数据的查询和操作,并且提供了更高的数据安全性。
2. SQL查询语句在数据库的使用过程中,最常见的操作之一就是查询数据。
以下是一些关于SQL查询语句的面试题。
2.1 SELECT语句及其用法SELECT是用于从数据库中查询数据的关键字。
它可以用来选择特定的列、过滤数据、排序结果等。
2.2 WHERE子句的作用和用法WHERE子句用于过滤满足特定条件的数据。
它可以在SELECT语句中使用,以便筛选满足特定要求的数据。
2.3 JOIN语句的作用和用法JOIN语句可以将两个或多个表格中的数据连接起来。
它通过共享表格之间的字段,来获取相关联的数据。
2.4 GROUP BY和HAVING的概念和区别GROUP BY用于将数据分组,并对每个组应用聚合函数。
HAVING 子句用于过滤分组结果。
3. SQL数据操作语句数据库不仅仅是用来查询数据的,还可以对数据进行新增、修改和删除操作。
以下是一些关于SQL数据操作语句的面试题。
3.1 INSERT语句及其用法INSERT语句用于向数据库中插入新的数据行。
它可以插入单行或多行数据,并指定插入的列和值。
初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
数据库面试知识点1.数据库基础知识-什么是数据库?什么是数据库管理系统(DBMS)?-谈谈关系型数据库和非关系型数据库的区别。
-数据库的三范式是什么?分别解释第一范式、第二范式和第三范式。
-数据库的ACID是什么?分别解释原子性、一致性、隔离性和持久性。
-什么是数据库索引?为什么使用索引?-什么是主键?什么是外键?2.SQL知识-什么是SQL?SQL的常见命令有哪些?-什么是DDL、DML和DCL?举例说明每个命令的使用场景。
-什么是表?什么是触发器?什么是存储过程?-什么是视图?视图有什么作用?-什么是事务?事务的特性是什么?如何管理和控制事务?3.数据库设计与优化-数据库设计的常见步骤有哪些?-什么是关系图谱?如何使用关系图谱进行数据库设计?-常见的数据库设计范式有哪些?-怎样根据业务需求优化数据库查询性能?-如何处理大数据量下的数据库性能问题?4.数据库安全性和备份-数据库安全性的重要性有哪些?-数据库安全性措施有哪些?-什么是SQL注入攻击?如何防止SQL注入?-什么是数据库备份和恢复?如何保证数据库的可靠性和可恢复性?5.NoSQL和云计算-什么是NoSQL数据库?举例说明NoSQL数据库的常见类型。
-什么是分布式数据库?为什么使用分布式数据库?-什么是云数据库?云数据库的优势和劣势是什么?-什么是数据库扩展和缩放?如何设计可扩展的数据库架构?除了以上的知识点,还有一些与具体数据库相关的问题。
在面试前,需要对所应聘的企业使用的数据库进行了解,并对该数据库的特点和优势有一定了解。
最后,需要注意的是,除了掌握理论知识,还需要具备一定的实践经验。
在准备面试前,建议运用自己的知识结合一些实践项目来加深自己的理解和掌握程度。
SQL期末复习考核知识点:第一章:数据库的基础知识1)数据库概述:定义2)数据库系统:构成、核心3)关系模型:记录、属性、字段等概念第三章:SQL 的基础知识1)SQL的数据类型:基本类型的种类与使用方法2)标示符:自定义标示符的规则3)使用SQL语句管理与维护数据库:创建、修改、删除数据库的SQL语句4)使用SQL语句管理与维护表:创建、修改、更新、删除的操作5)利用简单的SQL语句进行表格数据的查询:简单select 语句第四章:SQL 高级查询1)关联表查询2)UNION子句的使用3)子查询(IN)与连接查询(LEFT/RIGHT/FULL JION)第五章:视图1)视图的概述2)创建视图、使用与维护视图第六章:索引1)索引的概述2)索引的分类第七章:T-SQL 程序设计1)T-SQL的变量类型与表示方法2)程序流程控制语句:(BEGIN END、IF ELSE、WHILE)第八章:函数1)系统内置函数2)自定义函数的使用第九章:存储过程、触发器和游标1)系统存储过程与自定义存储过程的使用2)触发器的概述与使用第十一章:SQL 数据库的安全性管理1)SQL的安全性机制2)登陆账号、用户账号、角色等概念的理解第十二章:数据的备份与恢复数据的备份方法与恢复期末复习综合测试题1. 数据库系统的核心是()。
A. 编译系统B. 数据库C.操作系统D.数据库管理系统2. 关系模型中的数据逻辑结构是()。
A. 矩阵B. 树C. 二维表D.矢量3. 关系数据库中的关键字是指( )。
A.能惟一决定关系的字段B.不可改动的专用保留字C.关键的很重要的字段 D能惟一标识元组的属性或属性集合4. 对所有视图都可以进行。
A.select B. insert C. update D. delete5. 学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是()。
A.多对多B.一对一C.多对一D.一对多6.若要删除数据库中已经存在的表S,可用()。
第一章数据库基础1数据库系统:是由数据库及其管理软件组成的系统,常常把数据库有关的硬件和软件系统成为数据库系统2.数据库:数据库就是数据的仓库,由表、关系以及操作对象组成3.数据:是描述事物的符号记录(数字、文字、图形、图像、声音等)4.数据库的作用存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息5.数据库经历的三个阶段及特点1)人工管理阶段: 数据不保存;使用应用程序管理数据;数据不共享;数据不具有独立性。
2)文件系统阶段:数据可以长期保存;由文件系统管理数据;共享性差,数据冗余大;数据独立性差。
3)数据库系统阶段:数据结构化;数据共享性高;数据独立性强;数据粒度小;独立的数据操作界面;统一管理和控制6.数据模型的分类层次模型网络模型关系模型7.E-R图三个主要部分1)1.实体集:在E-R图中用长方形来表示实体集,实体是实体集的成员。
2) 联系:在E-R图中用菱形来表示联系,联系与其涉及的实体集之间以直线连接,并在直线端部标上联系的种类, (1:1,1:N,M:N)。
3) 属性:在E-R图中用椭圆形来表示实体集和联系的属性,对于主键码的属性,在属性名下划一横线。
8.绘制E-R图所需的图形1) 长方形框----实体集(考虑问题的对象)2) 菱形框----联系(实体集间联系)3) 椭圆形框----实体集和联系的属性4) 直线----连接相关的联系和实体,并可标上联系的种类9.E-R图设计原则:真实性;避免冗余;简单性10.三大范式第一范式:在关系模型中的每一个具体关系R中,如果每个属性都是不可再分的,则称关系(R)属于第一范式(1NF)第二范式:如果关系模式R属于第一范式,且每一个非主属性都完全依赖于主码,则称关系R是属于第二范式的第三范式:如果关系模式R为2NF,并且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第三范式的第二章数据库的安装1.常见的数据库类型:Access、SQL server2000、2005、2008,Oracle数据库等2.数据库管理员的工作是:配置数据库服务器环境;管理数据库的逻辑对象结构;配置数据库的对象权限;制定数据库的性能优化策略;数据库的备份还原策略;数据库的异构协同结构3.SQL Server 2008 的版本Express 适用于无连接的客户端或独立应用程序Workgroup 适用于工作组或分支机构操作的数据库Standard 部门级应用程序的数据库服务器Enterprise 高度可伸缩和高度可用的企业级数据库Developer Enterprise 版,但是只授予开发和测试用许可Web 供托管公司提供低成本、高伸缩的托管服务,只收取低廉的每月许可费Mobile 用于智能手持式设备的精简数据库12.掌握SQL Server 2008数据库的安装与卸载第三章数据库的管理1.T-SQL语言分类DDL(数据定义语言)-create(创建)-alter (修改)-drop (删除)DQL(数据查询语言)-inter(插入)-update(更新)DML(数据操作语言)-select(查询)DCL(数据控制语言)-revoke(撤销)-deny(拒绝)-grant(同意、授权)2.数据库文件主数据文件(.mdf):一个数据库有且只有一个辅助数据文件(.ndf):根据需要自由选择,当数据库很大时,可以选择多个日志文件(.ldf):用于存储恢复数据库所需的事务日志信息3.掌握数据库的创建及修改(图形化及代码)修改数据库包括:扩展、收缩、分离附加、删除4.语法1)修改数据库名Alter database 原数据库名Modify name =新数据库名例子:【例】将数据库book的名字改为booksalter database bookmodify name=books2)修改文件属性Alter database 数据库名Modify file(name='逻辑名',size=修改后的大小,maxsize=修改后的大小,filegrowth=修改后的大小)Go例子:把初始大小由原来5mb增大为12mbalter database booksmodify file(name='book_data',size=12mb)go3)添加日志文件Alter database 数据库名Add log file(name= ‘逻辑名’,filename = ‘文件的存放路径’,size=日志文件的初始大小,maxsize=日志文件的最大大小,filegrowth=日志文件的增长方式)Go例子:【例】向shop数据库中添加一个日志文件alter database shopadd log file(name='shop_log2',filename ='c:\shop_log2.ldf',size=10mb, maxsize=20mb,filegrowth=10%)go4)删除空文件Alter database 数据库名Remove file 文件的逻辑名例子: 删除文件shop_data2 alterdatabase shop removefile shop_data24)添加辅助数据文件alter database 数据库名add file(name=‘逻辑名’,filename=‘文件存放的路径’,size=初始大小,maxsixe=最大大小,filegrowth=增长方式)Go例子:向数据库shop中添加一个辅助数据文件alter database shopadd file(name='shop_data3',filename='c:\shop_data3.ndf',size=5mb,maxsize=10mb,filegrowth=10%)go5)创建/删除数据库Create database 数据库名on primary( --数据文件name=‘逻辑名’,filename=‘文件的存放路径’,size=数据文件的初始大小,maxsize=数据文件的最大大小,filegrowth=文件的增长方式 )log on ( --日志文件name=‘逻辑名’,filename=‘文件的存放路径’,size=数据文件的初始大小,maxsize=数据文件的最大大小,filegrowth=文件的增长方式 )go例子:创建一个名为book的数据库,其初始值大小为5MB,最大大小为 50MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
SQL重要知识点梳理!MySQL数据库-基础知识1.说说主键、外键、超键、候选键的差别并举例∙超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键。
∙候选键(candidate key):不含有多余属性的超键称为候选键。
也就是在候选键中,若再删除属性,就不是键了!∙主键(primary key):用户选作元组标识的一个候选键程序主键。
∙外键(foreign key):如果关系模式R中属性K是其它模式的主键,那么k在模式R 中称为外键。
举个例子,对于学生信息(学号身份证号性别年龄身高体重宿舍号)和宿舍信息(宿舍号楼号):∙超键:只要含有“学号”或者“身份证号”两个属性的集合就叫超键,例如R1(学号性别)、R2(身份证号身高)、R3(学号身份证号)等等都可以称为超键!∙候选键:不含有多余的属性的超键,比如(学号)、(身份证号)都是候选键,又比如R1中学号这一个属性就可以唯一标识元组了,而有没有性别这一属性对是否唯一标识元组没有任何的影响!∙主键:就是用户从很多候选键选出来的一个键就是主键,比如你要求学号是主键,那么身份证号就不可以是主键了!∙外键:宿舍号就是学生信息表的外键。
2.为什么一般用自增列作为主键?∙如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。
∙如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新记录都要被插到现有索引页的中间某个位置,此时MySQL不得不为了将新记录插到合适位置而移动数据,这增加了很多开销,同时会增加大量的碎片。
3.触发器的作用?∙安全性,可以基于数据库的值使用户具有操作数据库的某种权利。
∙审计,可以跟踪用户对数据库的操作。
∙实现复杂的非标准的数据库相关完整性规则,触发器可以对数据库中相关的表进行连环更新。
∙触发器能够拒绝或回退那些破坏相关完整性的变化,取消试图进行数据更新的事务。
目录第一章数据库基础知识 (2)一单选题 (2)二判断题 (4)第二章SQL语言 (4)一单选题 (4)二判断题 (8)三综合题 (8)第四章视图与索引 (13)一单选题 (13)二判断题 (14)第七章数据库设计 (14)一单选题 (14)二判断题 (16)三综合题 (16)第十章数据库备份与恢复 (20)一单选题 (20)二判断题 (21)《数据库原理与应用III 》题库第一章数据库基础知识一单选题[试题分类]: [01]数据库基础知识/[0101]数据库基本概念1.( B )是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的数据的集合。
( A )数据库系统( B )数据库( C )关系数据库( D )数据库管理系统2.(B)是位于用户和操作系统之间的一层数据管理软件。
数据库在建立、使用和维护时由其统一管理、统一控制.A. DB B.DBMS C.DBS D3.数据库管理系统的工作不包括( A )A.为定义的数据库提供操作系统B.数据备份C.为已定义的数据库进行管理D.定义数据库4. 数据库系统的特点是____、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
A.数据共享B.数据存储C.数据应用D.数据保密5、数据库(DB )、DBMS 、DBS 三者之间的关系( B ) 。
( A )DB 包括DBMS 和DBS ( B )DBS 包括DB 和DBMS( C )DBMS 包括DB 和DBS ( D )DBS 与DB 和DBMS 无关6. 数据库是保存在计算机中的、有组织的、可共享的(B)A.文件的集合B.数据的集合C.命令的集合D.程序的集合7.支持数据库各种操作的软件系统叫(B )。
A.命令系统B.数据库管理系统C.数据库系统D.操作系统8.在数据库中存储的是( A )?A.数据B.数据模型C.数据以及数据之间的联系D.信息9._D____可以减少相同数据重复存储的现象。
1、数据库简介:数据库是专门开发数据管理的软件,或者说专门管理数据的软件就是数据库。
数据库存在的意义就是:减轻开发人员的负担。
数据库是一个综合的软件,那么我们不需要队要进行2进制保存数据进行处理了,但是却是要与数据库产生交互,那么命令式SQL,有技巧的,数据库就是万物皆关系(面向对象,万物皆是对象)有所区别。
2、数据库的发展:一开始的是层次化的数据与网状数据库,后来也发现使用确实很麻烦。
于是到了1970年EF.Cold博士(IBM公司的研究员)开创了关系性的数据库的先驱,发表了关系性数据库的论文,但是由于当时电脑硬件的局限性,大家觉得跑如此大的程序不值得。
后来,Oracle(甲骨文)公司的创始人,拉里带领Oracle投入到关系型数据库的研发,并且得到了一个大客户—美国国防部。
随即开始世界刮起了关系数据库的旋风,随后各个公司都纷纷推出自己的数据库系统。
比如:IBM的DB2 ,还有风靡一时的DBS3。
但是随即出现不兼容的问题,由于最早的时候都没有进行没规范。
所以到最后各个数据库巨头统一了操纵数据库的SQL(结构化Struct数据查询语言)变成了标准语言,而关系型数据库也俨然变成大家的宠儿,Oracle也从一个小公司,变成现在的数据库巨头,而我们的微软也推出了SQLServer。
当然还有PHPer的最爱mySQL。
但是mySQL被SUN,SUN 被Oracle收购,现在有免费版与收费专业版了。
所以我们学习SQL语言的时候,先学共同点,再学特异性。
各种数据库软件在使用上有一点区别。
3、数据库系统详解:为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。
计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。
数据库系统一般由4个部分组成:数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。
(个体)数据库管理系统(DBMS)。
一组能完成描述、管理、维护子数据库的程序系统。
它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。
数据库管理员(DBA)。
用户和应用程序。
(微软的称作SSMS)4、数据库系统的基本要求是:1、能够保证数据的独立性。
数据和程序相互独立有利于加快软件开发速度,节省开发费用。
2、冗余数据少,数据共享程度高。
3、系统的用户接口简单,用户容易掌握,使用方便。
4、能够确保系统运行可靠,出现故障时能迅速排除,能够保护数据不受非受权者访问或破坏,能够防止错误数据的产生,一旦产生也能及时发现。
5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。
6、具有可修改性和可扩充性、可维护性。
7、能够充分描述数据间的内在联系。
5、数据库(Database):由众多的数据、数据表、约束、存储过程、函数、视图、索引构成的一个数据存储与交互单元,是按照数据结构来组织、存储和管理数据的仓库。
6、数据表(table):数据表,实际上是一个二维表。
一般是围绕一个事务、动作记录,或者是一个信息主题作为一个数据表。
数据表由行与列构成。
7、列(column、field):列,其实就是字段。
也是决定了信息的基本单元。
列,包含有数据类型的设定。
8、行(row、record):行,实际上就是一条基本信息。
一行包含了多列数据的存储的信息。
所以一行也有一条记录之称。
9、行业(trade)一个行业一种需求,没一个需求每一种数据库的设计模式与思想。
每个行业的数据设计的重点都是不同的。
侧重查询(要求低范式)还是操作(要求搞范式)就是自己选择的问题了。
10、索引(index)索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
索引其实就是一个B+树,但是这个索引是N^n层数次方的。
目的就是在数据库中划分出一定的区域优化查询。
可以提升大量数据的查询速度。
索引一般可以分为:基于字段优化查询速度的普通索引、唯一性索引、主键索引、全文索引、单列与多列索引。
现在由于数据库系统的不断升级,我们只要设定索引就可以了,不需要特殊的维护。
而且数据在查询的时候也会根据查询适当地选择是利用索引查询,还是仅仅是表查询。
由于数据库系统的发展,系统内部已经自动帮我们完成对索引的维护。
但是在设计的时候要考虑到索引的损耗问题。
数据库DB就像是一个字典,索引就是根据指定字段制成的快速指向。
由于只是指向数据对象标识,真正的数据是存储在DB中,所以查询速度极快。
但是额外的内存与硬盘花销也是一个需要考虑的问题。
比如:增加、删除、修改时数据库都要对索引进行维护,但是这样也是为了最后查询的效率的提升,特别适合W行级别的数据查询。
而索引可以分为:隐式索引(针对单个字段)、唯一索引(唯一约束)、函数索引(函数(字段))、聚簇索引(主键)、组合索引(最多16个field)与全文索引(text)。
一般索引会占用原数据库大小的20%。
11、视图(view)固化的子查询,将一个子查询起了一个固化的名字,保存在数据库中,方便以后的使用。
其实调用大量的Join来进行一个查询一般也是用视图。
视图与索引都是为了优化查询的速度与语句。
视图是优化语句,索引是优化单查速度。
一般是DBA来设定数据库的视图,封装内部数据库的数据关系,范式修改数据容易了,视图让我们查询复杂关系的数据变得容易。
12、触发器(trigger)触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。
触发器经常用于加强数据的完整性约束和业务规则等。
触发器可以从DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
13、SQLServer数据类型详解14、命名规范:15null也是一个集合,但是仅仅表示的是一个空集,但是实际上是null=Unknow。
1、数值运算null为null;2、 逻辑判定null 为null ;3、 主外键联接null 为忽略;4、 语句连结null 为or 或真、and 和假。
具体可查三值逻辑的真值表。
5、特殊情况:<1>where null = null ,where column = value :表中column 为NULL 的行永远不会返回,即使value 是NULL ,直接断言; <2>case null when null then XXX :XXX 永远不会执行,即使value 是NULL ,直接断言;<3>unknow 判断,if <unknow> {XXX} else {YYY} end 或case when <Unknown> then XXX else YYY end :这两种情况下,<unknow>,即是null 会执行。
<4>唯一约束(unique index )的字段只允许一个null 的行,再插入或更新该字段为NULL 的行会报字段重复的错误。
<5>group by 时,所有null 被视为一组。
<6>order by 时,所有null 排在一起,但null 排在最前面.(如SQL Server ),或者是最后面(如Oracle ),SQL 标准未规定。
<7>聚集函数(sum/avg/max/min/count )忽略null 的行,即是不返回此行数据,直接断言 <8> declare 时,在未赋值之前为null 。
<9>与NULL 处理相关的运算符和函数:- is null/is not null :用这两个运算符来判断一个值是否为NULL ,而不是=或<>; - is null/ coalesce :取第一个非空值(注意两个函数的数据类型转换规则不同); - nullif(a,b):等价于如果a 等于b 返回null,如果不等于返回b - isnull(a,b):取两者中不为null 的值,都为null 返回null 。
16、Not Null 的建表由于三值关系的存在,很多开发人员在建表的时候,除非是非null 不可,基本都是允许为null 的,其结果往往是一张表除了主键以外所有的字段都可以为Null 。
之所以会有这样的思路,是因为Null 好啊,程序不容易出错啊,你插入记录的时候如果不小心忘输了一个字段,程序依然可以R 运行un ,而不会出现 “XX 字段不能为Null ”的错误消息。
但是,这样做的结果却是很严重的,也会使你的程序变得更加繁琐,你不得不进行一些无谓的空值处理,以避免程序出错。
更糟的是,如果一些重要数据,比如说订单的某一项值为Null 了,那么大家知道,任何值与Null 相操作(比如加减乘除),结果都是Null ,导致的结果就是订单的总金额也为Null 。
你可以运行下面的代码尝试一下:Select Null + 5 As Result但是我们如何解决输入为空的问题呢?我们为什么不使用我们强悍的工具—check 约束与默认值呢?Field Varchar (500) default ‘nothing ’ Not Null Constraint ck_ColumnName Check (Len (ColumnName )>0), [Type] TinyInt Not Null Default 0 Constraint ck_ArticleType Check ([Type] in (0,1,2)),所以,合理的思维方式应该是这样的:默认这个字段是 Not Null 的,然后判断这个字段是不是非Null 不可,如果不是这样,OK ,这个字段是Not Null 的,进行下一个字段。
17、数据库的原子性1、你的表是描述什么事物,明确表的信息对象主体2、你的表是为了适合什么操作语句的设计的,面向操作设计3、列的内容要不要原子性的切块,让查询直逼要害,列的设计的小块的程度要拿捏好4、表必须是二维表,而且要根据不同的需求进行设计,表的设计与列的设计一样都要依赖与操作与需求原子性的存在是为了切分适合的信息块 ,从而达到信息的最大化、最优化的使用,并不是无限切分就好,要看实际的应用。
但是由于原子性数据的表容易设计,而且运行的所需时间较短(查询信息的指向性比较强,同时也便于维护喝更新操作,但是却是在海量数据搜索面前有点乏力),所以对大量的数据处理的时候要加分效果。
1、 同一列中不能存在多个类型相同的值,一列不能多值(除非是) 2、 同一个表中也不能存在有多个存储相同类型数据的列3、 无重复的行,每列只存储一份同类型下的一份数据(列是单值的),无重复列名4、18、结合信息对象与业务设计数据库设计1、数据库的设计师根据信息要素、关系来设计的;2、数据库的信息查找依赖于信息的使用方式的;3、对于可有可无的东西,我们需要花点时间去好好斟酌;4、简短的查询,比囧长的业务查询更加需要思考;5、使用数据的方式将会与我们占用系统内存与硬盘息息相关,影响着服务器的整体表现,所以我们的设计会有所倚重与侧重; 现在基本是双数据库,外层是方便查询,内层是方便修改。