| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- AWS 보안 아키텍처 분석
- 악성코드분석
- 악성코드 분석
- 프로그래머스
- operating system
- TryHackMe
- reversing.kr
- AWS 침해 사고 사례 분석
- 운영체제
- 네트워크
- 드림핵
- Amazon S3
- reversing
- AWS 침해사고 사례 분석
- dreamhack
- programmers
- sql
- CrackMe 문제
- python
- 파일 시스템
- AWS
- AWS 사고 사례 분석
- 리버싱
- AWS 3 Tier Architecture
- network
- terraform
- Database
- C
- crackme
- 버퍼 오버플로우
- Today
- Total
목록Database (11)
lhywk 님의 블로그
1. 트랜잭션트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 구성하는 일련의 연산들을 의미한다. 예를 들어 계좌 이체는 "보내는 사람의 계좌에서 돈을 빼는 연산"과 "받는 사람의 계좌에 돈을 더하는 연산"이라는 두 개의 개별적인 연산으로 이루어지지만, 이 두 연산은 항상 함께 성공하거나 함께 실패해야 하는 하나의 작업 단위로 취급되어야 한다. 이런 작업 단위가 바로 트랜잭션이다. 2. ACID 속성트랜잭션이 안전하게 수행되기 위해서는 다음과 같은 네 가지 속성을 만족해야 하는데, 이를 각 속성의 영문 앞글자를 따서 ACID라고 부른다.원자성원자성(Atomicity)은 트랜잭션에 포함된 작업들이 전부 실행되거나, 혹은 전부 실행되지 않아야 한다는 속성이다. 앞서 예로 든 계좌..
1. JOIN관계대수의 조인 연산(세타 조인, 동등 조인, 자연 조인, 외부 조인, 세미 조인) 이 연산들은 실제 SQL에서 JOIN이라는 문법으로 구현된다.INNER JOININNER JOIN은 두 테이블에서 조인 조건을 만족하는 행만 결합하는 가장 기본적인 조인이다. 관계대수의 자연 조인이나 동등 조인에 대응한다.SELECT 학생.이름, 수강.과목명FROM 학생INNER JOIN 수강 ON 학생.학번 = 수강.학번;LEFT JOIN과 RIGHT JOINLEFT JOIN은 왼쪽 테이블의 모든 행을 보존하면서, 오른쪽 테이블에 짝이 없으면 NULL로 채우는 조인이다. 왼쪽 외부 조인에 대응한다.SELECT 학생.이름, 수강.과목명FROM 학생LEFT JOIN 수강 ON 학생.학번 = 수강.학번;이 질의문..
SQL의 분류SQL(Structured Query Language)은 관계형 데이터베이스를 다루기 위한 표준화된 언어이다. SQL은 수행하는 역할에 따라 크게 네 가지로 분류할 수 있다.1. DDL (데이터 정의어)DDL(Data Definition Language)은 데이터베이스의 구조, 즉 스키마를 정의하고 변경하는 데 사용되는 언어이다. 테이블이나 인덱스 같은 데이터베이스 객체를 만들고 수정하고 삭제하는 명령어들이 여기에 속한다.CREATECREATE는 새로운 데이터베이스 객체를 생성하는 명령어이다. 테이블을 만드는 경우를 예로 들면 다음과 같은 형태로 사용한다.CREATE TABLE 학생 ( 학번 VARCHAR(10) PRIMARY KEY, 이름 VARCHAR(20) NOT NULL, ..
1. 이상 현상이상 현상(Anomaly)은 하나의 릴레이션에 어울리지 않는 여러 정보가 함께 묶여 있을 때, 데이터를 삽입하거나 삭제하거나 갱신하는 과정에서 발생하는 예기치 않은 문제를 의미한다. 다음과 같은 수강 릴레이션을 예로 들어보겠다.학번이름학과학과사무실2024001김민준컴퓨터공학공학관 401호2024002이서연전자공학공학관 502호2024003박지호컴퓨터공학공학관 401호이 릴레이션은 학생 개인의 정보(학번, 이름)와 학과의 정보(학과사무실)가 한 릴레이션에 뒤섞여 있다. 이렇게 설계된 릴레이션에서는 다음과 같은 세 가지 이상 현상이 나타난다.삽입 이상삽입 이상(Insertion Anomaly)은 새로운 데이터를 삽입하려고 할 때, 불필요하거나 원하지 않는 다른 데이터까지 함께 입력해야 하는 문..
1. ERD란 무엇인가ERD(Entity-Relationship Diagram, 개체-관계 다이어그램)는 개념적 데이터 모델인 E-R 모델을 그림으로 표현한 것이다. 현실 세계에 존재하는 개체들과 그 개체들이 가지는 속성, 그리고 개체들 사이의 관계를 시각적으로 나타내서, 데이터베이스를 설계하기 전에 전체적인 구조를 한눈에 파악할 수 있게 해준다.ERD를 먼저 그려보는 것은 매우 중요한 과정이다. 코드를 작성하기 전에 건물의 설계도를 그리는 것과 비슷한데, 설계도가 잘못되면 이후에 아무리 코드를 잘 작성해도 구조적인 문제가 계속 발생하기 때문이다. ERD를 통해 어떤 데이터가 필요한지, 그 데이터들이 서로 어떻게 연결되는지를 미리 점검할 수 있다.2. 개체와 속성ERD는 크게 세 가지 요소로 구성된다. ..
1. 관계대수관계대수(Relational Algebra)는 원하는 결과를 얻기 위해 릴레이션에 어떤 연산을 어떤 순서로 적용해야 하는지를 명시하는 절차적인 질의 언어이다. 여기서 절차적이라는 말은, 결과를 얻기까지의 과정을 단계별로 명시해야 한다는 뜻이다. 이는 우리가 흔히 쓰는 SQL이 무엇을 원하는지만 선언하면 되는 선언적 언어인 것과 대조된다.관계대수의 핵심적인 특징은 연산의 입력과 출력이 모두 릴레이션이라는 점이다. 즉 하나 또는 두 개의 릴레이션에 연산을 적용하면, 그 결과도 항상 릴레이션의 형태로 나온다. 이 덕분에 여러 연산을 자유롭게 조합하고 중첩해서 사용할 수 있다.관계대수는 연산하는 대상의 개수에 따라 크게 두 가지로 나눌 수 있다. 하나의 릴레이션을 대상으로 하는 단항 연산에는 셀렉션..
1. 키키는 릴레이션에서 튜플을 다른 튜플과 구별해서 유일하게 식별할 수 있게 해주는 속성, 또는 속성들의 조합을 의미한다. 키는 역할과 성격에 따라 여러 종류로 나뉜다.슈퍼키슈퍼키(Super Key)는 한 릴레이션 내에서 튜플을 유일하게 식별할 수 있는 속성들의 집합이다. 슈퍼키는 유일성(Uniqueness)만 만족하면 되기 때문에, 식별에 필요하지 않은 속성이 추가로 포함되어 있어도 슈퍼키가 될 수 있다. 예를 들어 학생 릴레이션에서 (학번, 이름)이라는 속성 조합은 학번만으로도 충분히 유일하게 식별할 수 있지만, 이름이 추가로 붙어 있어도 여전히 튜플을 유일하게 식별하므로 슈퍼키가 된다.후보키후보키(Candidate Key)는 슈퍼키 중에서도 최소성(Minimality)을 만족하는 키이다. 최소성이..
1. 릴레이션릴레이션(Relation)은 관계형 데이터 모델에서 데이터를 표현하는 기본 단위로, 흔히 말하는 테이블(Table)과 같은 의미로 쓰인다. 릴레이션은 행과 열로 구성된 2차원 표 형태를 띠고 있으며, 하나의 릴레이션은 하나의 개체 집합에 대한 정보를 담는다. 예를 들어 학생들에 대한 정보를 담은 학생 릴레이션, 과목들에 대한 정보를 담은 과목 릴레이션처럼 각각의 릴레이션은 서로 다른 개체를 표현한다.릴레이션을 구성하는 요소릴레이션을 이해하기 위해서는 몇 가지 용어를 정확히 알아야 한다.속성(Attribute)은 릴레이션의 열(Column)에 해당하며, 개체가 가지는 하나의 특성을 의미한다. 학생 릴레이션이라면 학번, 이름, 학년, 학과 같은 것들이 속성이 된다.튜플(Tuple)은 릴레이션의 ..