SQL数据库设计与关系理解

需积分: 9 2 下载量 153 浏览量 更新于2024-08-01 收藏 111KB DOC 举报
"SQL基础知识介绍,包括SQL语句、数据库设计、关系模型以及JDBC访问" 在SQL中,我们看到了一些基本的SQL语句用于创建和操作数据库。`CREATE DATABASE`命令用于创建数据库,如`CREATE DATABASE chuanjiang;` 创建了一个名为"传江"的数据库。之后,`USE`命令用来切换到指定的数据库,如`USE chuanjiang;`。`CREATE TABLE`用于定义表格结构,这里创建了两个表——`class`和`stu`。`INSERT INTO`语句用于向表格中插入数据。`class`表代表班级,有`cid`(班级ID)和`cname`(班级名称)字段,而`stu`表表示学生,包含`sid`(学生ID)、`sname`(学生姓名)、`score`(分数)、`friend_id`(朋友ID)、`cid`(班级ID)和`sex`(性别)字段,其中`cid`是外键,关联到`class`表。 1. `class`和`stu`是两种实体,它们之间是一对多的关系。这意味着一个班级可以有多个学生,但每个学生只能属于一个班级。 2. 在这种一对多关系中,`class`是父表,`stu`是子表。 3. 数据库中的信息由实体和它们之间的关系构成,关系类型包括一对一、一对多和多对多。 4. 数据库NF指的是规范化表,共有5个范式,通常关注的是前3个:1NF(第一范式,确保每一列的值都是不可分割的基本数据)、2NF(第二范式,消除部分函数依赖)和3NF(第三范式,消除传递函数依赖)。1NF是必须满足的,3NF可以视情况不满足,但在实际设计中通常要求达到1NF和2NF。 5. 数据库设计通常遵循以下步骤:首先分析需求,然后找出实体和它们之间的关系并绘制ER图(概念数据模型CDM),最后将ER图转换成实际的表(物理数据模型PDM)。 在Java中,使用JDBC(Java Database Connectivity)来访问数据库,核心代码包括加载驱动(`Class.forName("驱动名称");`),获取数据库连接(`Connection conn = DriverManager.getConnection(url, username, password);`),以及执行SQL语句(如`Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql);`等)。这些是建立数据库连接和执行查询的基础。 这个摘要涵盖了SQL基础,包括DML(数据操作语言)的使用,数据库设计原则,以及使用JDBC进行数据库交互的基本知识。这些都是IT行业中与数据库打交道时不可或缺的部分。