컴퓨터 공학 분야 별 지식/database 10

Database query processor

데이터베이스의 쿼리 프로세서(Query Processor)는 사용자 또는 응용 프로그램이 데이터베이스에 대해 실행하는 쿼리(Query)를 처리하고 실행하는 소프트웨어 모듈입니다. 이 모듈은 쿼리를 분석하고 최적화하여 데이터베이스 시스템에서 효율적으로 실행할 수 있도록 도와줍니다. 쿼리 프로세서는 일반적으로 다음과 같은 단계를 거쳐 동작합니다 구문 분석(Syntax Parsing): 쿼리를 구문적으로 분석하여 쿼리의 구조를 이해합니다. 이 단계에서 문법적 오류를 검출하고 쿼리를 파싱하여 내부 표현(Internal Representation)을 생성합니다. 의미 분석(Semantic Analysis): 구문 분석 후에는 쿼리의 의미를 분석하여 데이터베이스 객체(테이블, 뷰 등)와 필드(컬럼) 등을 식별합니다..

Database storage manager

Database Design 데이터베이스의 일반적인 구조를 디자인하는 목적은 다음과 같습니다. 적절하게 설계된 데이터베이스는 최신의 정확한 정보에 대한 액세스를 제공합니다. 처음 데이터베이스를 설계할 때 시간이 걸리더라도 데이터베이스를 잘 설계해두면 이후에 오히려 유지보수 시간을 많이 아낄 수 있습니다. Logical Design: 데이터베이스의 스키마를 결정합니다. 비즈니스 디자인: 우리의 데이터베이스 레코드에 무슨 속성이 필요할까? 컴퓨터 과학 디자인: 무슨 관계 스키마가 꼭 필요하고, 어떻게 속성들이 다양한 관계 스키마에 배포될 수 있을까? Physical Design: 데이터베이스의 물리적 레이아웃을 결정합니다. Database Engine 데이터베이스 시스템은 전체 시스템에서 각 역할을 하는 모..

DDL, DML

DDL(Data Definition Language) DDL은 데이터베이스 스키마를 표기하기 위한 특별한 표기법입니다. DDL 컴파일러는 데이터 딕셔너리에 저장되는 테이블 구조를 만듭니다. 데이터 딕셔너리는 메타데이터(데이터를 초월한 데이터: 테이블 이름, 컬럼 등 구조)를 포함하고 있습니다. 데이터베이스 스키마 제약조건 PK 권한 DML(Data Manipulation Language) DML은 적절한 데이터 모델에 의해 구성된 데이터에, 접근하거나 업데이트 하는 언어입니다 쿼리 언어로도 알려져 있습니다. 두 가지 타입의 DML이 존재합니다. Procedural DML(절차적): 데이터를 어떻게 얻는지 알고 무슨 데이터가 필요한지 아는 유저가 필요합니다. Declarative DML(비절차적, 선언적)..

데이터베이스 추상화 계층

이번 포스팅에선 데이터베이스 시스템의 추상화 계층에 대해서 알아보겠습니다. 물리 계층(Physical Level) 디스크에 record가 어떻게 저장되어 있는지 표현합니다. 논리 계층(Logical Level) 데이터가 데이터베이스에 어떻게 저장되어있는지, 관계와 함께 표현합니다. type instructor = record ID : string; name : string; dept_name : string; salary : integer; end; 뷰 계층(View Level) 사용자가 보는 계층입니다. 데이터 타입의 세부 사항이 가려집니다. 보안 필요에 따라 정보를 추가로 가리기도 합니다(EX: 사원의 월급 등)

데이터베이스 시스템의 목적

이번 포스팅에서는 databse 시스템이 왜 생겨났는지 그 이유를 알아보겠습니다. 초기 database system의 문제점 아주 이전에는 database 애플리케이션이 file 시스템으로 이루어졌고 이는 다음과 같은 문제들을 야기하였습니다. 데이터 중복(redundancy)과 불일치(inconsistency): 데이터들이 각기 다른 파일 포맷에 저장되어야 했기 때문에 정보의 중복을 만들었습니다. 데이터 접근의 어려움: 각기 다른 작업에 대해 새로운 프로그램을 작성해야 했습니다. 데이터 고립(isolation): 데이터가 다수의 파일과 포맷에 종속되어 재사용되기 힘든 문제입니다. 무결성(integrity) 문제: 무결성 제약조건은 독립적으로 존재하지 못하고 프로그램 코드에 의해 관리되어야 했고 이로 인해..

[DB, ERD]ERDCloud 사용법

ERDCloud 사용법 ERD Cloud는 무료 ERD툴이라 학생들이 공부하는 과정에서 사용할 일이 많습니다. 저도 학생으로서 ERDCloud를 사용하면서 배운 점들을 리뷰해보겠습니다! 1. 기본 세팅 ERD생성 팀 ERD와 개인ERD중에 하나를 선택한다 팀 ERD에서는 사람들을 초대해 실시간으로 같이 작업을 할 수 있다. 물리, 논리 구조 및 세팅 왼쪽 네비게이션 바 밑에를 보면 L/P, L, P가 보이는데 각각 Logic(논리), Physics(물리)의 약자다 Database의 물리, 논리명이 궁금하다면 구글링을 해보도록 하자 실제 Database에 저장되는 내용은 물리명이다 오른쪽 위 프로필 사진 왼쪽 톱니바퀴를 누르면 설정 창이 나오고 여기서 설정을 할 수 있다 디스플레이 부분의 기본값도 체크해서..

[DB, SQL 문법 정리]Aggregate Functions<집계 함수>(avg, min, max, sum, count) and Group By

이번 시간에는 worker라는 가상의 table이 있다고 가정하고 aggregate Function과 group by에 대해 설명하겠습니다! Aggregate Functions 모으는 함수 column들의 값을 종합하여 한 개의 값을 반환하는 함수들 예시: worker table 속성 (밑줄이 PK 속성) 속성 workerId name company salary 속성 뜻 직원 고유 번호(PK) 직원이름 회사이름 연봉 avg, min, max, sum 해당 속성의 평균, 최소, 최대, 총합 값 return 밑의 avg랑 같은 형식으로 사용하면 된다 select avg(salary) from worker where company = 'Apple'; -- worker테이블의 Apple에 다니는 사람들의 연봉의..

[DB, SQL 문법 정리] SQL Operations<연산자>(String, between, union, intersect, except)

SQL Operations(String, between, union, intersect, except) 이번 포스팅에서는 예제와 함께 간단한 SQL operation(연산자)을 정리하겠습니다! String operation SQL에 있는 문자열 매칭 오퍼레이터로 비교하게 해주는 연산 ‘like’ 연산자를 이용 sensitive(대소문자 구분)하게 찾아낸다 special character인 ‘%’ 이용 ‘like’ 연산자와 special character인 ‘%’를 이용 양 끝에 사용하면 해당 문자가 들어간 row를 찾을 수 있다 select name from worker where name like '%Park%' --worker 테이블에서 name속성에 'Park'이라는 substring이 들어간 St..

[DB, SQL 문법 정리] Query Structure<질의 구조>(Select, From, Where), Rename(as) 연산자

Query Structure(Select, From, Where), Rename(as) 연산자 안녕하세요! 이번 포스팅에선 기본 SQL 구조에 사용되는 절들과 Rename operation에 대해서만 알아보도록 하겠습니다! Query Structure SQL query는 테이블(relation)을 return한다 select [속성1, 속성2, 속성3....] from [테이블명1, 테이블명2, 테이블명3 ....] where [조건] select절 원하는 속성을 적는 곳 기본구조 select [테이블 안 속성] from [테이블명] 중복을 허용하기 때문에 중복되는 속성값을 없애고 싶다면 distinct사용한다 select distinct [테이블 안 속성] from [테이블명] 전체 선택은 *을 이용한..

[DB, SQL 문법 정리] 도메인 타입, DDL, DML

도메인 타입, DDL, DML 정리 목차 SQL의 도메인 타입 DDL DML SQL의 도메인 타입 숫자형 int: 4byte integer small int: 2byte integer nemeric(p, d): 고정 소수점 숫자, p가 전체 자릿수, d는 소수점 이하 자리수를 의미한다. EX) numeric(3,1) : 44.5 는 가능 하지만 444.5, 0.32불가 real: 32bit 실수 double precision: 64bit 실수 float(n): 32bit n개의 숫자 가진 실수 문자형 char(n): 고정길이 문자열 varchar(n): 가변길이 문자열. 길이는 maximum n까지 DDL(Data Definition Language) 데이터 베이스를 정의하는 언어. 데이터 베이스의 틀이..