본문 바로가기

백엔드55

DDL: 제약조건 & 인덱스 & 스키마 변경/삭제 제약조건 - NOT NULL- UNIQUE- PRIMARY KEY- CHECK 두 테이블 간 참조 관계가 있을 때 - FOREIGN KEY: 외래키 명시- CASCSDING ACTIONS: 참조당하는 테이블의 행 데이터 삭제/변경 -> 자식 테이블에서의 처리 명시* CASCADE* SET NULL* SET DEFAULT* NO ACTION* RESTRICT데이터 무결성 제약조건 데이터베이스에 대한 승인된 변경으로 인하여 데이터 일관성 및 무결성이 손실되지 않도록 보장 -> 우발적 손상 예방단일 릴레이션에 대한 제약조건 1. NOT NULL: 특정 컬럼이 NULL 값 갖는 것 방지-> 특정 컬럼에 값이 반드시 존재하도록 제한create table instructor ( ID varchar(5), na.. 2025. 4. 6.
SQL을 활용한 데이터 정의와 조작 SQL(Structured Query Language) - 관계형 데이터베이스를 위한 데이터 언어- 관계형 데이터베이스의 데이터 정의, 조작, 제어를 위해 사용하는 언어- 관계형 데이터베이스와 사용자와의 매개 MySQL 서버와 클라이언트 프로그램을 별도로 설치해줘야 한다.(난 맥을 사용하기 때문에 클라이언트 프로그램 설치하지 않고 terminal에 명령어 입력해주면 된다.) - MySQL 설치 => MySQL 서버 설치(관계형 데이터베이스 + DBMS)- 클라이언트 프로그램 따로 설치  SQL 명령어 분류 DDL은 데이터 구조, 스키마 정의-> DML은 준비된 스키마 기반으로 데이터 삽입/삭제/변경/조회SQL 명령어 분류명령어설명데이터 정의어(DDL)CREATEALTERDROPRENAME- 테이블 구조 .. 2025. 4. 4.
관계대수 연습문제 - 기본키 모두 매칭하는 문제   교수의 강의 관련된 정보는 "instructor"-"teaches"-"section"학생의 수강 관련된 정보는 "student"-"takes"-"section"    왜 SELECT에 교집합을 걸어주지 않고 따로 JOIN해 교집합을 걸어둔 걸까?=> 결론부터 말하면,, 하나의 애트리뷰트에 관련된 조건이 두 개면 SELECT 조건에 교집합을 넣어줄 수 없음 !!따라서 연습문제 5번은 교집합 따로 해줘야 하지만 연습문제 4번은 SELECT조건에 두 개의 조건 때려넣어도 됨. 합집합의 경우 맞게 나오지만 교집합의 경우 A가 나와야 하는데 아무것도 나오지 않기 때문에 교집합은 안 된다..자세히 말하면,,애트리뷰트는 원자성을 가진다. "강의한 교수" 라는 애트리뷰트는 L 또는 K.. 2025. 4. 3.
관계형 데이터 모델과 관계대수(2) Relational Algebra(관계 대수) 관계 대수는 한 개 또는 두 개 릴레이션을 피연산자로 하여 연산 결과로 새로운 릴레이션을 반환  : 데이터베이스로부터 데이터를 조회하기 위한 언어* Pure Query Language: 데이터 조회만을 위한 언어(정의, 조작 지원x)선언적 성격이 강한 SQL이 동일하게 동작하여 쿼리최적화할 수 있는 절차적 "관계 대수" 필요(쿼리최적화의 핵심은 내부적으로 절차적인 관계 대수로 표현해두는 것) 관계 대수 기본 연산 1. Select- select predicate에 비교 연산자 사용 가능- 여러 조건을 걸어줄 때 논리 연산자로 연결 가능- select predicate에서 두 속성의 값 비교 가능   2. Project "학번"이라는 속성이 기본키가 아니기 때.. 2025. 4. 2.