建立表结构——《数据库设计凡人入门》第七章整理

本文主要介绍了如何建立数据库的表结构,包括定义初始表结构、确定最终表结构、字段求精和表结构优化。强调了表名的唯一性、描述性,以及字段的精确定义,避免冗余数据,确保表结构清晰且高效。
摘要由CSDN通过智能技术生成

一、定义初始表结构

i. 从检查初始字段列表开始,找出隐藏说明的主题,这时要摒弃对调研过程中熟悉的主题的偏爱,客观地观察。分辨字段说明了哪些特定的主题(有可能就是隐藏的主题)。识别尽量多的主题,形成一个初始表列表

ii. 与主题列表对比,处理重复项目;处理代表同一主题的不同项目(往往是取名 问题);合并两张表中的项目。

iii. 使用任务目标,用来判断前面的过程是否遗漏了说明主题。使用主题识别技术,通过对有下划线的项目名称它的内涵的理解来判断是否已经出现在初始表列表里面。

        

二、定义最终表结构

a) 最终表多了两个项目:表类型与描述。表类型有:数据表,连接表,子集表,验证表表描述对该表所代表的主题给出了一个清晰的定义,并说明了它对于单位的重要性。

b) 表名求精

i. 要对单位有意义的、唯一的、描述性的名字

ii. 能够准确、清晰、无二义性的标识该表主题的名字(避免使用“杂项”)

iii. 用最少的字

iv. 不要使用表达物理特征的词。比如说“文件”,“表”(可以拆分为更多的主题)

v. 不用缩写

vi. 不要使用不恰当的专有名词。可能会限制,影响以后的发展(如“西南地区雇员”)

vii. 不要使用隐式或显式地标识多个主题的名字("\"

ARM 是一种广泛使用的 CPU 架构,而 Linux 内核是一个开放源代码的操作系统内核。在 ARM 平台上,我们可以通过内核模块编程的方式与内核进行交互,实现一些自定义的功能。 下面,我们将介绍如何在 ARM Linux 上编写内核模块,并输出一个简单的 "Hello World" 消息。 ## 1. 环境准备 在开始编写内核模块之前,需要先准备好开发环境。具体步骤如下: 1. 安装交叉编译工具链。ARM 平台上的应用程序和内核模块需要使用交叉编译工具链进行编译。可以从官网下载对应的交叉编译工具链,也可以使用已经编译好的交叉编译工具链。 2. 下载内核源代码。可以从官网下载对应版本的内核源代码,也可以使用已经编译好的内核源代码。 3. 配置内核源代码。需要在内核源代码根目录下运行配置命令 `make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig` 进行配置,选择需要的模块和功能。 ## 2. 编写内核模块 在准备好开发环境之后,可以开始编写内核模块了。具体步骤如下: 1. 创建一个新的文件夹,用于存放内核模块代码。 2. 创建一个新的 C 文件,命名为 `hello.c`。 3. 在 `hello.c` 文件中编写以下代码: ```c #include <linux/init.h> #include <linux/module.h> static int __init hello_init(void) { printk(KERN_INFO "Hello, world!\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_INFO "Goodbye, world!\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Your Name"); MODULE_DESCRIPTION("A simple hello world module"); ``` 这段代码定义了一个简单的内核模块,当模块加载时会输出 "Hello, world!" 消息,当模块卸载时会输出 "Goodbye, world!" 消息。 4. 使用交叉编译工具链进行编译。在终端中进入 `hello.c` 文件所在的文件夹,运行以下命令进行编译: ```bash arm-linux-gnueabi-gcc -Wall -Werror -O2 -o hello.ko -c hello.c ``` 这个命令将生成一个名为 `hello.ko` 的内核模块文件。 ## 3. 加载和卸载内核模块 在编写好内核模块后,我们需要将它加载到内核中进行测试。具体步骤如下: 1. 将 `hello.ko` 文件复制到 ARM Linux 系统上。 2. 在终端中进入 `hello.ko` 文件所在的文件夹,运行以下命令以加载内核模块: ```bash insmod hello.ko ``` 这个命令将调用内核中的 `init_module` 函数,执行 `hello_init` 函数,输出 "Hello, world!" 消息。 3. 查看系统日志,可以看到 "Hello, world!" 消息。 ```bash dmesg ``` 4. 在终端中运行以下命令以卸载内核模块: ```bash rmmod hello ``` 这个命令将调用内核中的 `cleanup_module` 函数,执行 `hello_exit` 函数,输出 "Goodbye, world!" 消息。 5. 再次查看系统日志,可以看到 "Goodbye, world!" 消息。 至此,我们已经成功地在 ARM Linux 上编写了一个简单的内核模块,并输出了 "Hello, world!" 消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值