42、数据库与万维网及 Microsoft Access 入门

数据库与万维网及 Microsoft Access 入门

1. 数据库与万维网

在数据库与万维网的连接方面,存在着多种解决方案。其中一些解决方案由于需要原生可执行组件,因而不具备可移植性,通常被视为利用现有驱动程序的中间解决方案。

1.1 纯 Java 可移植解决方案

有两种纯 Java 且具有可移植性的解决方案:
- Java 中间件服务器 :该架构使用一个 Java 组件,负责提供驱动管理器所需的服务,并提供多个目标。此组件通常由专门构建软件网关的公司实现。
- Java 驱动程序 :针对特定的数据库管理系统(DBMS),用 Java 实现驱动管理器所需的服务。这些驱动程序通常由 DBMS 供应商为其特定产品提供。

1.2 JDBC 的潜力与不足

总体而言,Java 数据库连接(JDBC)是一个有趣的解决方案,具有以可移植方式解决互操作性问题的巨大潜力。虽然目前它存在一些不成熟的问题,但其重要性超出了 Web 应用的范畴。

1.3 相关练习

为了更好地理解数据库与万维网的结合,以下是一些相关练习:
1. 考察所在大学或公司的网站,根据相关类型对其提供的服务进行分类。
2. 在互联网上找到属于不同类别(如“发布与咨询”、“Web 交易”、“电子商务”、“合作与工作流应用”)的网站。
3. 寻找一个可用于数据采集活动的网站。
4. 根据给定的概念模式设计一个网站,用于发布数据库内容,并展示超文本的概念和逻辑模式。
5. 为培训公司示例构建一个网站,包括确定用户需求、设计超文本的概念和逻辑模式。
6. 按照上述步骤,为具有特定实体 - 关系(E - R)模式的数据库设计网站。
7. 使用足球比赛数据库,编写一个公共网关接口(CGI)程序,生成特定球队在特定时期内的比赛列表。
8. 编写一个 CGI 程序,生成培训公司提供的特定课程页面,并列出所有版本。

1.4 数据库与万维网连接架构

数据库与万维网的连接存在多种架构类型,如下表所示:
| 类型 | 描述 |
| ---- | ---- |
| Type 1 | Native driver,特定 DBMS 的原生驱动 |
| Type 2 | JDBC/ODBC Bridge,通过 ODBC 驱动连接 |
| Type 3 | JDBC Middleware,支持多种 DBMS 的中间件 |
| Type 4 | JDBC Driver,特定 DBMS 的 JDBC 驱动 |

以下是这些架构的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(Java Application):::process --> B(JDBC Driver Manager):::process
    B --> C1(Native driver):::process
    B --> C2(JDBC/ODBC Bridge):::process
    B --> C3(JDBC Middleware):::process
    B --> C4(JDBC Driver):::process
    C1 --> D1(DBMS):::process
    C2 --> D2(ODBC Driver):::process --> D3(DBMS):::process
    C3 --> D4(DBMS):::process
    C4 --> D5(DBMS):::process

2. Microsoft Access 数据库管理系统

Microsoft Access 是微软 Windows 环境中最广泛使用的数据库管理系统(DBMS),它有两种使用方式:
- 作为个人计算机上的独立数据库管理器 :受个人计算机架构的限制,它对事务的支持有限,安全、数据保护和并发控制机制相对简单和不完整。但它成本低,适用于对这些服务要求不高的应用。其系统界面利用了图形环境的潜力,为用户和数据库设计者提供了友好的界面。
- 作为与其他系统上的数据进行交互的接口 :当作为关系型服务器的客户端时,Access 提供了自己的接口功能,使用户可以避免编写 SQL 代码。它通过易于理解的图形表示获取模式和简单查询,并将这些输入透明地转换为合适的 SQL 命令。通常使用开放数据库连接(ODBC)协议与数据库服务器进行通信。

2.1 系统特性

Access 的启动方式与传统 Windows 应用程序相同,通过选择窗口或菜单中的程序图标来启动。启动时,程序会询问是创建新数据库还是打开现有数据库,并提供之前使用过的数据库列表。

数据库创建可以从空数据库开始,也可以从一系列预定义模型中选择一个模式(对新手用户很有用)。每个数据库对应一个具有标准 .mdb 扩展名的文件。打开现有数据库需要选择相应的文件,也可以使用“文件”菜单中的“新建数据库”或“打开数据库”命令。

新创建或打开的数据库由一个窗口表示,该窗口出现在应用程序的主窗口内,我们将列出数据库组件的窗口称为数据库窗口。主窗口包含一组下拉菜单(如“文件”、“编辑”等)和工具栏,菜单和工具栏会根据 Access 中处于前台的窗口而变化。

数据库窗口包含系统组件的家族列表:表、查询、表单、报表、宏和模块。用户可以通过点击相应的按钮在不同家族之间切换。选择一个家族后,数据库中该家族的所有元素名称将显示在窗口中。如果元素数量超过窗口显示范围,可使用滚动条浏览列表。

对于每个家族,窗口右侧有三个按钮可供选择:
- 打开 :显示所选元素的内容。
- 设计 :重新打开所选元素的设计阶段。
- 新建 :创建该家族的新元素。

2.2 表的定义

要定义新表的模式,需要选择“表”家族并点击“新建”按钮。此时,Access 提供了五种不同的表定义机制:
- 数据表视图 :类似于电子表格的定义方式,呈现一个单元格网格,用户可以在其中定义列名。此界面适合有 Microsoft Excel 或 Lotus 123 等应用经验的用户,使他们更容易使用关系型系统。
- 设计视图 :直接使用该选项提供的服务来定义表的属性。首先,在出现的窗口中定义属性,需要指定每个属性的名称和域。在 Access 中,属性称为字段,域称为类型。每个属性都有一组字段属性,这些属性根据与每个属性关联的域而有所不同。
- 表向导 :使用“向导”工具,通过询问一系列问题并提供示例来指导表的创建。Access 在其他场景中也提供向导,对新手用户很有帮助。
- 导入表 :从外部源导入表,该命令在表定义时将整个内容复制到内部结构中。
- 链接表 :构建一个连接,允许从远程资源动态恢复表内容,实际上是在远程系统上定义一个视图。

2.3 表属性与字段属性

2.3.1 表属性

表属性可以通过“视图”菜单中的“属性”项进行设置,包括:
- 描述 :对表内容的文本描述。
- 验证规则 :指定表中每个元组必须满足的约束。
- 验证文本 :当插入或更新操作引入不满足完整性约束的值时显示的消息。
- 筛选 :指定显示表内容时元组必须满足的条件。
- 排序依据 :定义用于对表元组进行排序的属性。

2.3.2 字段属性

字段属性出现在模式定义窗口的下半部分,不同的域类型对应不同的字段属性,具体如下表所示:
| 字段属性 | 适用域类型 | 描述 |
| ---- | ---- | ---- |
| 字段大小 | 文本、数字 | 对于文本域,代表字符串的最大长度;对于数字域,有不同的取值,如字节(8 位整数)、整数(16 位整数)等 |
| 格式 | 多种 | 描述属性值的表示格式,可选择预定义格式或自定义 |
| 小数位数 | 单精度、双精度 | 指定表示时使用的小数位数 |
| 输入掩码 | 多种 | 指定数据输入的格式,Access 提供向导辅助创建 |
| 标题 | 多种 | 当属性出现在表单或报表中时使用的名称 |
| 默认值 | 多种 | 指定属性的默认值,也可以使用表达式,如 =Date() |
| 验证规则 | 多种 | 描述属性必须满足的约束,类似于 SQL 中的 CHECK 子句 |
| 验证文本 | 多种 | 当插入或更新值不满足完整性约束时显示的消息 |
| 必需 | 多种 | 指定元组是否必须在该属性上有值,对应 SQL 中的 NOT NULL 约束 |
| 允许零长度 | 文本、备注 | 指定是否允许空字符串 |
| 索引 | 多种 | 指定是否在该属性上构建索引,有“否”、“是(允许重复)”和“是(不允许重复)”三种选项 |

2.4 表的操作流程

以下是表的定义、关联和数据插入的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(启动 Access):::process --> B{选择操作}:::process
    B -->|创建新表| C(选择表定义机制):::process
    C -->|设计视图| D(定义属性和域):::process
    D --> E(设置字段属性):::process
    E --> F(指定主键):::process
    F --> G(设置表属性):::process
    G --> H(保存表):::process
    B -->|定义关联| I(选择工具菜单中的关系选项):::process
    I --> J(插入表架构):::process
    J --> K(定义连接路径):::process
    K --> L(设置连接属性):::process
    B -->|插入数据| M(打开表):::process
    M --> N(输入元组值):::process
    N --> O{值是否合法}:::process
    O -->|是| P(数据插入成功):::process
    O -->|否| Q(提示错误):::process

2.5 连接路径的定义

连接路径是两个表的属性对之间的关系,用于指定这两个表之间的连接通常基于这些属性的相等性。在 Access 中,连接路径被称为“关系”,可以为每个连接路径指定是否关联引用完整性约束,整个过程完全是图形化的,无需输入任何文本。

操作步骤如下:
1. 选择“工具”菜单中的“关系”选项,打开一个窗口,可从列表中选择插入已创建表的模式。
2. 通过点击第一个表图形表示中的一个属性,按住鼠标按钮并将指针移动到第二个表中的相应属性,来定义两个表之间的连接路径。
3. 建立属性之间的链接后,Access 会打开一个窗口,显示连接路径中涉及的属性。该窗口允许将连接条件扩展到其他属性或修改已定义的关系。
4. 点击“连接类型”按钮,可以选择在组合两个表的元组时使用的连接类型(内连接、左外连接或右外连接,与 SQL 不同,Access 不提供全外连接)。每次定义访问这两个表的查询时,连接路径表示的连接条件将自动使用。
5. 定义连接路径后,可以指定是否将该路径与引用完整性约束关联,并在同一窗口中定义违反约束时的反应策略。与 SQL - 2 标准相比,Access 允许的反应策略有限,对应于级联删除和级联更新两种策略。

2.6 表的填充

表的模式定义完成后,可以向表中插入元组以填充数据。Access 提供了一个简单的图形界面来完成此任务。通过点击主数据库窗口的“打开”按钮打开表,将显示表内容的表格表示,包括以属性名称为列标题的网格和描述表元组的行。表格底部有一个空行,用于插入新元组。

插入操作通过将指针放在最后一行并为每个属性输入值来完成。如果插入的值不满足所有约束条件,Access 会进行相应的提示。

2.7 索引的定义

在 Access 中,索引的定义对于提高数据查询效率至关重要。索引可以在单个属性或多个属性上创建。

2.7.1 单属性索引

对于单属性索引,可在定义字段属性时,通过“索引”属性进行设置。该属性有三个选项:
- :不创建索引。
- 是(允许重复) :创建允许重复值的索引。
- 是(不允许重复) :创建唯一索引,类似于 SQL 中的唯一约束。

需要注意的是,不能在“备注”、“自动编号”、“是/否”和“OLE 对象”这些属性上定义索引。

2.7.2 多属性索引

要定义多属性索引,可通过以下操作步骤:
1. 打开表定义窗口,使其处于前台。
2. 选择“视图”菜单中的“索引”选项,或者点击工具栏上的“索引”按钮,打开索引定义窗口。
3. 在索引定义窗口中,有“索引名称”、“字段名称”和“排序顺序”三列。在第一行,输入索引名称、第一个属性的名称以及排序方向。
4. 在后续行中,不填写索引名称,依次输入其他属性的名称和排序方向,直到所有需要的属性都添加完毕。

以下是一个简单的表格,总结了索引定义的相关信息:
| 索引类型 | 操作位置 | 可选项 | 注意事项 |
| ---- | ---- | ---- | ---- |
| 单属性索引 | 字段属性 - 索引 | 否、是(允许重复)、是(不允许重复) | 不能在备注、自动编号、是/否和 OLE 对象属性上创建 |
| 多属性索引 | 索引定义窗口 | 按行依次添加属性及排序方向 | - |

2.8 数据输入与验证

在向表中插入数据时,Access 提供了多种机制来确保数据的准确性和完整性。

2.8.1 输入掩码

输入掩码用于指定数据输入的格式。例如,对于一个存储电话号码的属性,可指定一个输入掩码,将其分为三位前缀和七位号码,中间用破折号分隔。用户只能输入符合该格式的数字。Access 提供了一个向导来协助创建输入掩码。

2.8.2 验证规则与验证文本

验证规则用于描述属性必须满足的约束条件,类似于 SQL 中的 CHECK 子句。当插入或更新操作引入不满足该约束的值时,会显示验证文本指定的消息。

2.8.3 必需属性与允许零长度

“必需”属性指定元组是否必须在该属性上有值,对应 SQL 中的 NOT NULL 约束。“允许零长度”属性仅适用于“文本”和“备注”域,用于指定是否允许空字符串。

以下是一个关于数据输入与验证的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(开始插入数据):::process --> B(输入数据):::process
    B --> C{数据格式是否符合输入掩码}:::process
    C -->|是| D{数据是否满足验证规则}:::process
    C -->|否| E(提示输入格式错误):::process
    D -->|是| F{属性是否为必需且有值}:::process
    D -->|否| G(显示验证文本):::process
    F -->|是| H{属性是否允许零长度且为空}:::process
    F -->|否| I(提示属性不能为空):::process
    H -->|是| J(数据插入成功):::process
    H -->|否| K(提示不允许空字符串):::process

2.9 总结

通过以上内容,我们了解了数据库与万维网连接的相关解决方案,特别是 JDBC 的潜力和不足。同时,深入学习了 Microsoft Access 数据库管理系统的使用,包括系统特性、表的定义、属性设置、连接路径定义、数据填充、索引定义以及数据输入与验证等方面。

在实际应用中,我们可以根据具体需求选择合适的数据库与万维网连接方案,利用 Access 的强大功能来管理和操作数据。无论是个人用户还是企业用户,都能通过 Access 提供的友好界面和丰富功能,高效地完成数据库相关任务。

以下是一个简单的总结列表:
1. 数据库与万维网连接有多种解决方案,JDBC 具有可移植性解决互操作性问题的潜力。
2. Microsoft Access 是 Windows 环境中广泛使用的数据库管理系统,有独立管理和作为客户端两种使用方式。
3. 表的定义可通过多种方式进行,包括设计视图、表向导等。
4. 表和字段都有各自的属性,可用于设置约束和规则。
5. 连接路径的定义和引用完整性约束的设置有助于维护数据的一致性。
6. 数据填充和输入验证机制确保了数据的准确性和完整性。
7. 索引的定义可以提高数据查询效率。

希望这些知识能帮助你更好地理解和使用数据库与万维网技术,以及 Microsoft Access 数据库管理系统。在实际操作中,不断实践和探索,你将能够熟练掌握这些技能,为你的工作和学习带来便利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值