数据库的初识以及简易的数据设计E-R图的绘制

本文深入探讨了数据库的三种核心模型:层次结构、网状结构及关系结构,并解析了数据库的三级模式与二级映射原理。同时,详细介绍了数据库范式的定义与应用,包括第一范式、第二范式和第三范式,以及如何通过范式提升数据库设计的质量。

在这里插入图片描述 作为一个跨越而来的IT男,相比于正科出生的程序猿总是缺少一些底蕴;就我而言对数据库概念只是增删改查,基础知识一知半解,也不懂oracle的魅力;也在面试中处处碰壁,此文章纯为读《orcale从入门到精通》一书的笔记和一些自己的胡思乱想。

数据库的三大模型:

一、层次结构模型:类似一个倒置的结构树,一个父表有多个子表,但是每个子表只对应着一个父表;感觉这种结构很像java三大特性中的继承特性,每个类只能对应着一个父类,每个父类可以有多个子类,所有的父类都继承Object类,如果将继承的结构用图显示出来,不就是一个倒置的树吗?
二、网状结构模型:网状结构是对层次结构局限性的改进不在局限一个子表只对应一个父表,父表也可以没有子表,就像一张蜘蛛的网;这种结构对设计者要求比较高;
三、关系结构模型:是目前用运的最多的结构模型,是一种二维表,有行和列组成的;一行称为一个元组,一列称为一个字段或者是一个属性;这个对于大家来说应该都很熟悉。

数据库的三级模式和二级映射

三级模式:外模式、模式、内模式;二级映射则是外模式/模式映像和模式/内模式映像。
外模式是用户级别的(开发者对表的操作),对应用户级,外模式是模式的一个子集;模式则对应的是数据库管理员级别(概念级),是所有用户公共数据的视图;而内模式则对应的是数据底层的存储(物理级),是数据库中所有数据的内部表示和底层的描述。
二级映射分别是:外模式/模式映射使数据具有较高的逻辑独立性;模式/内模式映射使数据有较高的物理独立性。

数据库的范式

范式是设计数据库的准则;范式分别有第一范式、第二范式、和第三范式。
第一范式:就是数据库表中的字段都是单一属性的,不可再分的;
第二范式:官方给出的是,要求在数据表中不存在非关键字段对任一候选关键字段的部分函数依赖;比如:一张表中存在组合主键B和C,那么其余的字段就不能存在组合重复,就是其他字段不能跟组合主键中的任一主键存在关系。
第三范式:是在第二范式的基础上对数据库设计进行规范,第三范式要求数据表中不存在非关键字段对任一候选关键字段的传递函数依赖。

绘制E-R图

E-R图中设计的基本要素有实体、联系以及属性。
绘制一个选课系统的E-R图:
1、课程实体
课程实体主要包含课程编号、课程名称、主讲老师、开课时间、课程描述,实体属性;
2、课程类型实体主要包含课程类型的编号和课程类型
3、学生实体:学号、姓名、班级、性别、专业
选课结果实体主要包含:选课编号、所选课程、学生姓名、选课时间;
在绘制E-R图是首先要理解下选课系统的流程。首先由学生选择要学习的课程,然后生成一个课程结果单,最后由学生确认所选的课程;
![](https://img-blog.csdnimg.cn/20191214172847241.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMjk4ODE0,size_16,color_FFFFFF,t_70)
### Python程序设计与MySQL数据库初识教程 Python 是一种广泛使用的高级编程语言,能够通过多种库和模块实现对 MySQL 数据库的操作。以下是关于 Python 程序设计中涉及 MySQL 数据库初识内容。 #### 1. Python 操作 MySQL 的基本流程 Python 操作 MySQL 数据库通常需要借助 `mysql-connector-python` 或 `pymysql` 等第三方库。这些库提供了连接数据库、执行 SQL 语句以及处理查询结果的功能[^4]。 ```python import mysql.connector # 连接数据库 connection = mysql.connector.connect( host="localhost", # 数据库主机地址 user="your_username", # 用户名 password="your_password", # 密码 database="your_database" # 数据库名称 ) # 创建游标对象 cursor = connection.cursor() # 执行 SQL 查询 query = "SELECT * FROM person" cursor.execute(query) # 获取查询结果 results = cursor.fetchall() for row in results: print(row) # 关闭游标和连接 cursor.close() connection.close() ``` #### 2. 安装 MySQL 数据库驱动 在使用 Python 操作 MySQL 数据库之前,需要安装对应的驱动库。以下是两种常用的驱动库及其安装方法: - **mysql-connector-python**: ```bash pip install mysql-connector-python ``` - **PyMySQL**: ```bash pip install pymysql ``` #### 3. Python 操作 MySQL 的常见功能 以下是一些常见的 Python 操作 MySQL 数据库的功能示例: ##### (1) 插入数据 ```python insert_query = "INSERT INTO person (id, name, age, address) VALUES (%s, %s, %s, %s)" data = (1, "Alice", 25, "New York") cursor.execute(insert_query, data) connection.commit() ``` ##### (2) 更新数据 ```python update_query = "UPDATE person SET age = %s WHERE id = %s" data = (30, 1) cursor.execute(update_query, data) connection.commit() ``` ##### (3) 删除数据 ```python delete_query = "DELETE FROM person WHERE id = %s" data = (1,) cursor.execute(delete_query, data) connection.commit() ``` #### 4. 数据库连接池 对于高并发场景,建议使用数据库连接池来管理数据库连接。`mysql-connector-python` 提供了简单的连接池支持[^5]。 ```python from mysql.connector import pooling pool = pooling.MySQLConnectionPool( pool_name="mypool", pool_size=5, host="localhost", user="your_username", password="your_password", database="your_database" ) connection = pool.get_connection() cursor = connection.cursor() ``` #### 5. 常见错误及解决方法 - **连接失败**: 确保 MySQL 服务已启动,并检查用户名、密码、主机地址是否正确[^6]。 - **SQL 语法错误**: 检查 SQL 语句的语法是否符合 MySQL 规范。 - **权限问题**: 确保用户具有操作目标表或数据库的权限。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值