Logo
Section 1 / 5

SQL 和 NoSQL 数据库

了解SQL和NoSQL数据库,并通过真实案例进行学习。

导入

SQL 和 NoSQL 数据库

了解SQL和NoSQL数据库,并通过真实案例进行学习。

...
数据库允许我们存储数字数据。有许多类型的数据库,就像有多种方式存放实物物品一样。

通过 AWS 可用的数据库

数据库类型AWS 数据库服务
关系型(SQL)Amazon RDS、Amazon Aurora、Amazon Redshift
键值对Amazon DynamoDB
内存型Amazon ElastiCache、Amazon MemoryDB for Redis
文档型Amazon DocumentDB(兼容 MongoDB)
宽列型Amazon Keyspaces
图数据库Amazon Neptune
时序数据库Amazon Timestream
账本数据库Amazon Ledger Database Services

SQL 数据库的 ACID 特性

特性描述
原子性包含多个更新的数据库事务要么全部完成,要么完全不执行。
一致性写入数据库的数据必须符合预定义的模式和其他策略。
隔离性当存在多个并发事务时,每个事务仍能独立运行。
持久性一旦数据库事务完成,其结果将永久保存(例如存储在磁盘上)。
...
Amazon RDS 控制台提供添加副本和自动扩展 SQL 数据库的选项
...
Amazon RDS 允许我们创建一个新的 MySQL 数据库
...
为了使数据库可访问,我们需要更改默认的 Amazon RDS 连接设置
...
点击“查看凭证详情”以查看连接数据库所需的用户名和密码
...
创建数据库后,我们需要其“终端节点”才能连接到它
...
必须配置数据库 VPC 组的入站规则,才能真正允许公共访问
...
将数据库的 VPC 安全组配置为允许来自任何位置的公共访问
...
使用 MySQL Workbench 工具连接数据库
...
在我们的演示 MySQL 数据库中存储数据之前,需要先创建一个模式
1import mysql.connector 2from mysql.connector import errorcode 3 4from dotenv import dotenv_values 5 6# 注意:“config.env” 文件必须修改为包含实际的数据库访问信息 7dotenv_config = dotenv_values("config.env") 8 9config = { 10 'user': dotenv_config['DATABASE_USER'], 11 'password': dotenv_config['DATABASE_PASSWORD'], 12 'host': dotenv_config['DATABASE_HOST'], 13 'database': dotenv_config['DATABASE_SCHEMA'] 14} 15 16try: 17 cnx = mysql.connector.connect(**config) 18 19 cs = cnx.cursor() 20 21 # 显示所有可用的表 22 cs.execute("SHOW TABLES") 23 24 table_count = 0 25 for (table_name,) in cs: 26 print(table_name) 27 table_count += 1 28 29 print("\n" + str(table_count) + " 个数据库表可用。") 30 31 32except mysql.connector.Error as err: 33 if err.errno == errorcode.ER_ACCESS_DENIED_ERROR: 34 print("用户名或密码有误") 35 elif err.errno == errorcode.ER_BAD_DB_ERROR: 36 print("数据库不存在") 37 else: 38 print(err) 39else: 40 cnx.close()

注意: 为避免产生意外费用,请从 Amazon RDS 控制台删除演示数据库。

概览

文件共享