//建表的实例应用
首先画ER图:
1:1有主键
1:n有主键,多方有外键
m:n产生中间表:没主键,有的两个多方的主键作为外键
范式2:非主属性完全依赖于主键(尽量非多个表,分细一点)
范式3:属性不依赖于其它非主属性
所有表,非特殊情况全都非Null
外键模式默认用CASCADE
非中间表:一般都有主键
多对多的中间表:没有主键,表的多方外键联合约束不重复(用Unique索引来实现),非自动递增
//默认:已聘人数0,两个触发器,一个限制需求人数>已聘人数,一个在已聘人数+1时触发 用户表的聘用标志为1
//注册普通用户时: 事务:插入3(用户号自增,取用户名,取密码) 插入8(用户号自增,取姓名,取性别) 插入10(用户号自增)
第一步:确定一般实体和空间实体:车行道(polyline),索道(polyline),滑步道(polyline),滑道(polyline)
第二步,确定实体属性
景点(id,x,y,z,景点名称,景点概括,景点配图)
第三步:绘制E-R模型
第四步:优化E-R模型
第五步:物理模型
E-R模型向表转换的基本规则是:
①若两个实体间的联系类型为M:N时的转换规则
实体和联系都转换为表
②若两个实体间的联系类型为1 :N时的转换规则
仅实体转换为表,联系转换为表的属性;
③若两个实体间的联系类型为1:1时的转换规则
仅实体转换为表,联系转换为表的属性;
数据字典:说明表有哪些字段
//多表连接
select a.x,b.y from a,b where a.id=b.id;
一、外连接:合并所有
1、左连接:偏向保留左边的字段
2、右连接:偏向保留右边的字段
二、内连接:只保留重复
select * from student inner join course on student.ID=course.ID
inner join 是比较运算符,只返回符合条件的行。
此时相当于:select * from student,course where student.ID=course.ID
三、交叉连接 cross join:能查出m*n条数据(m是表1行数, n是表2行数)
SQL语句:select * from student cross join course
四、两表关系为一对多,多对一或多对多时的连接语句
1、左连接:偏向保留左边的字段
2、右连接:偏向保留右边的字段
五、两表关系为一对多,多对一或多对多时的连接语句
//一个学生可以选择多门课程,一门课程可以被多个学生选择,因此学生表student和课程表course之间是多对多的关系。
select s.Name,C.Cname from student_course left join student on student.Sno=student_course.Sno left join course on course.Cno=student_course.Cno
//两个左连传到最左,也就是student_course,所以执行结果:对应表student_course, on后面接条件
MongoDB
SQL术语/概念 MongoDB术语/概念 解释/说明
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
主键,MongoDB自动将_id字段设置为主键 表连接,MongoDB不支持
命令行: mongod 开启 mongo 连接到shell
ADO(ActiveX Data Objects)
1.数据提供程序(常用类)
Connection:用来连接数据库,数据库连接类
Command:从Connection创建,用来执行SQL语句,数据库操作类
DataReader:只读、只进的结果集,一条一条读取数据(StreamReader、XmlReader微软的类库中这些Reader的使用方式都差不多)
DataAdapter,一个封装了上面3个对象的对象数据集(DataSet)
2.访问数据库的方式有两种
方式一:1.连接数据用Connection;执行SQL语句Command;执行完毕之后将结果一条一条返回。DataReader
方式二:使用DataAdapter+DataSet,这种方法本质还是通过Connection、Command、DataReader将数据全部取出来然后放到了DataSet中
3.SqlCommand常用的方法
ExecuteNonQuery() 执行对数据库的增删改,返回受影响的行数,适合:insert、delete、update(对于其他语句返回-1)
ExecuteScalar() 执行查询,返回首行首列
ExecuteReader() 执行查询,返回DataReader对象
Redis
redis是key-values的存储系统,因为是存在内存的,效率极高.
Redis 教程
Java 使用 Redis
安装
开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Java redis 驱动:
首先你需要下载驱动包,下载 jedis.jar,确保下载最新驱动包。
在你的classpath中包含该驱动包。
连接到 redis 服务
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//查看服务是否运行
System.out.println("Server is running: "+jedis.ping());
}
}
编译以上 Java 程序,确保驱动包的路径是正确的。
$javac RedisJava.java
$java RedisJava
Connection to server sucessfully
Server is running: PONG
//数据库建模工具PowerDesigner
Mandatory:是否允许为空
过程:
ER图-> 创建CDM(概念 数据 模型)
CDN -> PDM(物理 数据 模型)
PDM -> 数据库