笔试面试那件小事(数据库知识)
1关系数据库规范化是为了解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入。 2在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段过程中,其中(数据库系统阶段)的数据独立性最高。 3数据库(DB)、
1>关系数据库规范化是为了解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入。
2>在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段过程中,其中(数据库系统阶段)的数据独立性最高。
3>数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系(DBS包括DB和DBMS)
4>数据库管理系统能实现对数据库中数据表、索引等对象的定义、修改、删除,这类语言称为(数据库定义语言(DDL))
5>同一关系模型的任意两个元组值(不能全相同)
6>概念模型是(用于信息世界的建模,与具体的DBMS无关)
7>物理数据独立性是指(内模式改变,模式不变)
8>SQL语言是(关系数据库语言)
9>自然连接是构成新关系的有效方法,一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或者多个共同的(属性)
10>关系运算中花费时间可能最长的运算是(笛卡尔积)
11>文件系统与数据库系统最大区别是(数据结构化)
12>用于事务回滚的SQL语句(ROLLBACK)
13>(日志文件)用来记录对数据库中数据进行的每一次更新操作
14>并发操作会带来哪些的数据不一致(丢失修改,不可重复读,读脏数据)
15>为了提高效率,关系数据库必须进行(查询)优化处理
16>对数据库物理存储方式的描述(内模式)
17>在数据库三级模式之间引入二级映像的主要作用是(提高数据与程序的独立性)
18>视图是一个虚表,视图的构造基于(基本表或视图)
19>关系代数中投影运算对应的是SQL语句中的(SELECT)
20>将E-R模式转换成关系模型,属于数据库的(逻辑设计)
21>事务日志的主要用途(事务处理)
22>如果事务T已经在数据R上加了X锁,则其他事务在数据R上(吧可以加任何锁)
&&说明视图和基本表的区别和联系。
视图是从一个或者几个基本表导出,它与基本表不同,它是一个虚表,数据库中只存放视图的定义而不存放视图对应的数据。这些数据存放在原来的基本表中,当基本表的数据发生变化,从视图中查询出的数据也随之变化。视图
一经过定义就可以像基本表一样被查询、删除,也可以在视图之上定义新的视图。但对视图的更新操作有一定的限制。
&&简述事务的特性
事务具有四个特性:
原子性:一个事务要么做,要么什么都不做
一致性:事务对数据库的修改必须是从一个一致状态转到另一个一致状态
隔离性:一个事务的内部操作以及使用数据对其他事务是隔离的
持续性:事务一旦提交,对数据库的影响是持久的
&&简述关系模型中的参照完整性
参照完整性规则:若属性F是基本表关系S的外码,它与基本表关系R的主码Ks对应。要求属性F的取值必须与关系R中的某元组的主码对应,或者为NULL
&&现有关系数据库如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
分别用关系代数表达式和SQL语句完成下列要求:
(投影用T代表,选择用S代表,连接用L表示)
1,检索所有选修了课程号为“C112”课程的学生的学号和分数
SELECT 学号,分数 FROM 学习 WHERE 课程号=‘C112’
关系代数:T(S(学习))
2,检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数
SELECT 学生.学号,姓名,课程名,分数
FROM 学生,学习,课程
WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=‘英语’
关系代数:T(S(L(学生,学习,课程)))
3,检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数
SELECT 学生.学号,姓名,专业,分数
FROM 学生,学习,课程
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程。课程号 AND 分数>90 AND 课程名='数据库原理'
代数关系:
类似与上题
4,检索没学课程号为"C135"课程的学生信息,包括学号,姓名和专业
SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)
5,检索至少学过课程号为"C135"和“C100”的课程的学生信息,包括学号、姓名和专业
SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 IN(SELECT X1.学号 FROM 学习X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’ AND X2.课程号=‘C100’)
&&设有一个教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D),这些数据的大概意思如下:
1,一个学生所修的每门课程都有一个成绩
2,每门课程只有一位任课教师,但每个教师可以教多门课程
3,教师中没有重名,每个教师只属于一个系
问题:
根据上述的语义确定函数依赖集
如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明
将其分解为具有依赖保持的3NF
解答:
(1)F={(S#,C#)->G,C#->TN,TN->D}
(2)该关系模式只满足1NF,(即所有的属性为原子属性)
该关系模式中的候选关键字为(S# ,C#) 和非主属性G 、TN 、D
因为存在非主属性TN部分依赖与主属性,不满足2NF的要求
存在插入异常:例如某个学生还未选课,则无法加入数据库
(3)R1={S#,C#,G} R2={C#,TN} R3={TN,D}

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

Go 프레임워크는 Go의 내장 라이브러리를 확장하여 사전 구축된 기능(예: 웹 개발 및 데이터베이스 운영)을 제공하는 구성 요소 집합입니다. 널리 사용되는 Go 프레임워크에는 Gin(웹 개발), GORM(데이터베이스 운영) 및 RESTful(API 관리)이 포함됩니다. 미들웨어는 HTTP 요청 처리 체인의 인터셉터 패턴으로, 핸들러를 수정하지 않고 인증이나 요청 로깅 등의 기능을 추가하는 데 사용됩니다. 세션 관리는 사용자 데이터를 저장하여 세션 상태를 유지합니다. gorilla/sessions를 사용하여 세션을 관리할 수 있습니다.

PHP는 웹사이트 개발에 널리 사용되는 백엔드 프로그래밍 언어로, 강력한 데이터베이스 운영 기능을 갖추고 있으며 MySQL과 같은 데이터베이스와 상호 작용하는 데 자주 사용됩니다. 그러나 한자 인코딩의 복잡성으로 인해 데이터베이스에서 잘못된 한자를 처리할 때 문제가 자주 발생합니다. 이 기사에서는 잘못된 문자의 일반적인 원인, 솔루션 및 특정 코드 예제를 포함하여 데이터베이스에서 중국어 잘못된 문자를 처리하기 위한 PHP의 기술과 사례를 소개합니다. 문자가 왜곡되는 일반적인 이유는 잘못된 데이터베이스 문자 집합 설정 때문입니다. 데이터베이스를 생성할 때 utf8 또는 u와 같은 올바른 문자 집합을 선택해야 합니다.
