数据库学习 (一):数据库系统概述
数据库系统概述
- 数据:描述事物的符号
可以是数字、文字、图片、音频、视频等
- 数据库:大量数据的集合
长期存储在计算机中,可共享,有组织。
数据库具有数据结构化、最小的冗余度、较高的_独立性特点
- 数据库管理系统:系统软件
与OS一样,是计算机系统软件。
功能:
(1)定义数据
(2)组织、存储和管理数据
(3)数据操纵
(4)事务管理与运行管理
(5)数据库的建立与维护
- 数据库系统:存储、管理、处理和维护数据的系统
由数据库、数据库管理系统、应用程序和管理员组成
数据模型
有两种:(1)概念模型(如E-R:实体-联系模型)
- 实体:客观存在并可相互区分的事物。如一个学生。
- 属性:实体具有的某一特性。如学生的学号。
- 码:唯一标识实体的属性集。如学生的学号。
- 实体型:用实体名及属性名抽象刻画的同类实体。如学生(学号,姓名)。
- 实体集:同一类型实体集合。如全体学生。
- 实体减间的联系:不同实体集间的联系。有1:1,1:n和n:n等多种类型。
(2)逻辑模型/数据模型(层次、网状、关系、面向对象数据、半结构化数据、对象关系数据等模型)和物理模型
层次模型
如IMS。为树状结构,除根结点,每个结点都有唯一的一个双亲结点。每个结点表示一个记录类型(实例)。
记录值的查询只能按层次路径查看,没有子女记录值能脱离双亲记录值单独存在。
网状模型
(多对多),图形结构。如一个人可选多门课,每门课可被多人选,数据结构:允许有的结点没双亲,允许一个结点有多个双亲
层次模型与网状模型已经过时。
关系模型
二维表,一行是一个元组,,一列即一个属性。如(学生(学号,姓名,性别))
分量:元组中的一个属性值。
关系模型由关系数据结构,操作集合和完整性约束。不允许表中有表。
插入时,若没有相应的双亲结点则不能插入子女结点。
- 关系:一个关系对应一张表。
- 元组:表的一行
- 属性:表中一列
- 码/键:某个可以唯一确定一个元组的属性集合。
- 域:具相同数据类型值的集合。如人的年龄域一般在[1,120].
- 分量:元组中的一个属性值(即表中某个元素)。
- 关系模式:对关系的描述。如学生(学号,姓名,性别)
关系模型三要素:
- 数据结构
- 关系操作
- 完整性约束
数据库模式
模式(shema)仅仅涉及型(type)的描述,模式的一个具体值称为模式的一个实例。模式是稳定的,而实例是变动的
外模式是模式的子集。
内模式也叫存储模式,一个数据库只一个,是数据物理结构和存储方式的描述(如堆存储还是升降序排序)。
模式是数据的全局逻辑结构,外模式是局部,即用户视图。
映像
数据库在三级模式中提供了两层映像。保证了数据的逻辑和物理的独立性,用户无需关注数据在计算机中的具体表示,交给管理系统就行。
外模式/模式映像:应用程序是依据外模式编写的,当模式变化时,只需修改该映像,可保证外模式不变,保证了数据和程序的逻辑独立性。
模式/内模式映像:当数据存储结构变时,只需修改这个映像,可保证模式不变。保证数据与程序的物理独立性。
数据库学习(二):关系模型
数据库学习 (一):数据库系统概述相关推荐
- oracle临时表经常被锁_数据库学习——Oracle 数据库了解与使用
一. 数据库相关概念 1 什么是数据库 所谓的数据库其实就是数据的集合.用户可以对集合中的数据进行新增.查询.更新.删除等操作.数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...
- h2数据库学习------h2数据库介绍
介绍 H2是一款内存数据库,适合我们在开发阶段.学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求. H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是 ...
- 【数据库学习】——数据库可视化--Navicat下载安装连接教程
目录 进入网站 下载可视化软件 安装 双击桌面图标,选择试用 连接数据库 查看数据库中的表,如下所示 常用数据库有: MySQL.sqlite等 进入网站 Navicat | 产品https://ww ...
- DB2数据库学习之数据库备份还原
一.数据库离线(脱机)备份 1.cd /db2_backup 切换到存放备份文件的目录,如果没有要新建 2.db2 list applications for db dbName(数据库名) 确保没人 ...
- linux系统中mysql表中能添加中文_数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)...
数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...
- 数据库学习--DQL(数据库查询语言)
查询语句 select * from 表 where 条件 [inner/left/right join 表1 on 条件] group by 列名 having 组 order by 列名 limi ...
- h2数据库学习----h2数据库基本使用
依赖 <dependency><groupId>org.glassfish.hk2</groupId><artifactId>hk2</artif ...
- 【数据库学习笔记】——操作sqlite(增删改查)以及cursor的方法介绍
目录 1.sqlite数据库介绍 1)常见的数据库操作 2)数据操作常见步骤 2.向数据表中增加数据(insert into) 1)向数据表中添加一条记录 2)向数据表中一次性添加多条记录 3.修 ...
- oracle数据库学习总结
前言 这是本人复习兼学习两周oracle数据库后整理的一些知识,适合查询oracle的一些语法,也可以当作一个oracle数据库的知识架构梳理. 鉴于数据库语法繁琐,知识点繁多,还有很多知识点没有纳入 ...
最新文章
- 2018-3-20论文(一种新的群体智能算法--狼群算法)笔记一(引言中提到的的一些智能算法,以及自己的感想)
- 代码变油画,精细到毛发,这个前端小姐姐只用HTML+CSS,让美术设计也惊叹丨GitHub热榜...
- [云炬创业基础笔记]第二章创业者测试6
- 发布CodeBuild.Net代码自动生成器 V2008 2.01(Vs2008)和架构实例源码Demo
- 普通 项目打包包含第三方jar包
- 课后作业-阅读任务-阅读笔记4
- STC51-串口通信
- 苹果“自研”心不死 仍考虑收购英特尔基带业务
- 里bl2和bl3为什么分开_真正爱过的人,分开,真的会是“好散”吗?
- java reader类子类_java io --- Reader类
- Android中获取并设置屏幕亮度
- 服务器svn自动同步,svn主备服务器实时同步
- mac mysql 1055_Mysql 错误“1055”
- 深入浅出实时数据库12.8日版
- STM32cubeIDE使用CCMRAM
- 【零基础深度学习教程第一课:深度学习基础】
- html表头解释_1分钟内解释的html
- 基于JSP的某餐厅点餐系统
- mysql where 条件取反_MySQL搜索: WHERE 多条件
- 嵌入式下的Hello World——点亮流水灯(STM32cubemx)