랜덤 I/O와 순차 I/O랜덤 I/O: 데이터가 디스크의 물리적인 위치에서 분산되어 있거나 데이터 접근이 예측 할 수 없는 순서로 이루어지는 입출력 작업을 말합니다.순차 I/O: 데이터가 디스크의 연속된 물리적인 위치에 저장되어 있거나, 순서대로 접근되는 입출력 작업을 말합니다.HDD와 SSD의 랜덤I/O와 순차 I/O순차 I/O: 데이터가 연속적으로 저장되어 있기 때문에 HDD와 SSD에서 모두 순차 I/O의 성능 차이가 크지 않습니다.랜덤 I/O: HDD의 경우, 분산된 데이터 하나씩 읽을 때마다 디스크 헤드를 물리적으로 움직여야 하므로 성능이 떨어집니다. SSD는 기계적인 움직임이 없기 때문에 랜덤 I/O에서 상대적으로 높은 성능을 유지할 수 있습니다.인덱스HDD나 SSD 저장장치는 순차 I/O가 ..
INNER JOININNER JOIN은 두 테이블 간에 공통된 값을 가진 행만을 결합하여 반환합니다.SELECT 테이블1.컬럼, 테이블2.컬럼FROM 테이블1INNER JOIN 테이블2ON 테이블1.공통컬럼 = 테이블2.공통컬럼;OUTER JOINLEFT OUTER JOINRIGHT OUTER JOINFULL OUTER JOINOUTER JOIN 은 INNER JOIN과 달리, 조인 조건에 일치하지 않는 행도 포함하여 변환합니다. OUTER JOIN에는 세 가지 유형이 있습니다.LEFT OUTER JOIN왼쪽 테이블의 모든 행과 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없으면 NULL로 표시됩니다.SELECT 테이블1.컬럼, 테이블2.컬럼FROM 테이블1LEFT OUTE..
SELECT 문의 구성 요소SELECTFROMWHEREGROUP BYHAVINGORDER BYLIMIT`SELECT` 문은 다음과 같은 여러가지 절로 구성되어 있습니다. 각 절에 대해 간단히 알아보겠습니다.SELECT조회할 컬럼을 선택합니다.SELECT name, ageFROM데이터를 조회할 테이블을 지정합니다.FROM employeesWHERE조건에 맞는 레코드를 필터링합니다.WHERE age > 30GROUP BY값이 같은 행들을 그룹으로 묶습니다.GROUP BY departmentHAVING그룹화된 데이터에 조건을 적용하여 필터링합니다.HAVING COUNT(*) > 5ORDER BY데이터들을 정렬합니다.ORDER BY salary DESCLIMIT보여지는 행 수를 제한합니다.LIMIT 10처리순서..
VIEW란 무엇인가?VIEW(뷰)는 하나 이상의 테이블을 기반으로 한 가상의 테이블 입니다. 실제 데이터를 저장하지 않고 정의된 쿼리의 결과를 보여주는 역할을 합니다.특징가상 테이블: 실제 데이터를 저장하지 않고, 쿼리 결과를 동적으로 생성합니다.데이터 추상화: 복잡한 데이터 구조를 단순화해 사용자에게 필요한 정보만 제공할 수 있습니다.재사용성: 자주 사용하는 쿼리를 VIEW로 정의하여 여러 번 재사용할 수 있습니다.VIEW의 장점복잡한 조인이나 조건을 VIEW로 정의하여 간단한 `SELECT` 문으로 데이터를 조회할 수 있습니다. (복잡한 쿼리 단순화)사용자에게 필요한 정보만 노출해 민감한 데이터 보안을 강화할 수 있습니다.동일한 VIEW를 여러 곳에서 사용해 데이터 조회의 일관성을 유지할 수 있습니다..
DML (Data Manipulation Language)DML이란 데이터 조작어라고도 합니다. DML 명령어는 `SELECT`, `INSERT`, `UPDATE`, `DELTE` 가 있습니다SELECT데이터를 조회할 때 사용하는 명령어입니다.SELECT 컬럼1, 컬럼2, ...FROM 테이블명WHERE 조건;예시:SELECT name, ageFROM studentsWHERE grade = 'A'; INSERT데이터를 테이블에 삽일할 때 사용하는 명령어입니다.INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)VALUES (값1, 값2, ...);다른 테이블 데이터를 삽입INSERT INTO 저장될_테이블명 (컬럼1, 컬럼2, ...)SELECT 컬럼1, 컬럼2, ...FROM 가져올_테이블명WHE..
릴레이션의 개념스키마: 릴레이션에 어떤 정보가 담길지 정의된 헤더속성: 각 열을 뜻 함. 릴레이션 스키마의 열을 말함도메인: 속성이 가질 수 있는 값의 집합차수: 속성의 개수인스턴스: 스키마에 실제로 저장된 데이터의 집합투플: 릴레이션에서 한 행을 말함카디날리티: 투플 의 수관계 데이터베이스 스키마는 여러 릴레이션 스키마들의 집합으로 구성된다. 투플이 가지는 속성의 개수는 릴레이션 스키마의 차수와 동일하고, 릴레이션 내의 모든 투플들은 서로 중복되지 않아야 한다.릴레이션의 특징속성은 단일 값을 가진다.속성은 서로 다른 이름을 가진다.한 속성의 값은 모두 같은 도메인 값을 가진다.속성의 순서는 상관없다.릴레이션 내의 중복된 투플은 허용하지 않는다.투플의 순서는 상관없다.각 속성의 값은 도메인에 정의된 값만..
3단계 데이터베이스 구조데이터베이스는 보는 관점에서 세단계로 분리할 수 있다. 이렇게 개념적으로 3단계로 분리한 구조를 3단계 데이터베이스 구조(3-layer database architecture)라고 부른다.3단계 데이터베이스 구조는 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.스키마(schema)는 조직이나 구조를 의미한다.외부 스키마일반 사용자나 응용 프로그래머가 접근하는 계층이다. 전체 데이터 베이스 중에서 하나의 논리적인 부분을 의미한다.여러 개의 외부 스키마(external schema)가 있을 수 있다.서브 스키마(sub schema)라고도 하며, 뷰(view)의 개념이다.개념 스키마전체 데이터베이스의 정의를 의미한다.통합 조직별로 하나만 존재하며 데이터베이스 관리자(DBA)가 관리한..
데이터 모델은 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법으로 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정한다.데이터 모델 종류계층 데이터 모델네트워크 데이터 모델객체 데이터 모델객체-관계 데이터 모델데이터 모델을 구분하는 가장 큰 기준은 데이터들 간에 관계를 표현하는 방법이다.위 그림과 같은 테이블이 있을 때 학생이 강좌를 수강한다는 학생-강좌 관계를 표현해야하는데 이를 표현하는 방법은 다음과 같이 세 가지가 있다.관계 표현 방법1. 포인터 사용계층 데이터 모델, 네트워크 데이터 모델에서 사용한다.포인터로 데이터를 직접 찾아가 속도는 빠르지만 개발 속도는 느리다.2. 속성 값 사용관계 데이터 모델에서 사용한다.포인터를 사용하는 방법보다 속도는 느리지만 개발이 빠르다.3. 객체식..