분류 전체보기 86

[SQLD] SELECT, FROM

SELECT  SELECT 문의 구조총 6개의 절로 구성되어있고, 각 절의 순서대로 작성해야 한다SELECT * / 컬럼명 / 표현식FROM 테이블명/뷰명WHERE 조건GROUP BY 그룹화 기준 컬럼명HAVING 그룹핑 필터링 조건ORDER BY 정렬기준 컬럼명GROUP BY와 HAVING의 순서는 서로 바꿀 수 있으나, 보통 사용하지 않는다별칭을 만들기 위해 AS를 사용할 수 있다생략 가능하다별칭은 결과에만 적용되며, 실제 DB 테이블에는 영향이 없다HAVING이나 WHERE 절에서는 사용할 수 없다예약어를 사용할 수 없다'오라클'에서 테이블 별칭을 명시할 때 AS를 사용할 수 없다DISTINCT는 중복된 데이터가 있는 경우, 1건으로 처리해서 출력한다  SELECT 문의 내부 실행 순서SELECT ..

DataBase 2025.02.25

[SQLD] 관계형 데이터베이스 개요, SQL, 데이터 무결성, 제약 조건

관계형 데이터베이스(Relational Database, RDB)   RDB 구성요소계정: 데이터의 접근 제한을 위해 업무별/시스템별로 존재테이블: DBMS의 데이터베이스 안에 데이터가 저장되는 형식스키마: 테이블이 어떠한 구성으로 이루어져 있는지를 말함. 즉, 테이블의 기본적인 구조 정의  RDB 특징데이터의 분류, 정렬, 탐색 속도가 빠르다신뢰성이 높고 데이터의 무결성이 보장된다기존의 작성된 스키마를 수정하기 '어렵다'DB의 부하를 분석하는 것이 '어렵다'   테이블(Table)테이블행/열의 2차원 구조랄 가진 데이터 저장 객체RDB의 기본 단위릴레이션이 곧 테이블이다컬럼/열(Column)필드(Field)라고도 한다테이블에서 세로 방향으로 이루어진 개별 속성더 이상 나눌 수 없다로우/행(Row)레코드..

DataBase 2025.02.24

[SQLD] 트랜잭션

트랜잭션   트랜잭션데이터베이스에서 하나의 논리적 작업 단위를 의미여러 개의 작업이 하나의 트랜잭션으로 묶여, 모두 성공하거나 모두 실패하도록 보장함이를 통해 데이터의 무결성과 일관성을 유지할 수 있다  트랜잭션의 4가지 특성(ACID)Atomicity(원자성)트랜잭션 내의 모든 작업이 '완전히 수행'되거나, '전혀 수행되지 않아야' 한다Consistency(일관성)트랜잭션이 완료된 후, 데이터베이스는 항상 일관된 상태를 유지해야한다즉, 트랜잭션 실행 전 데이터베이스에 문제가 없었다면, 실행 후에도 문제가 없어야 한다Isolation(격리성)트랜잭션은 독립적으로 수행되어야 한다따라서 동시에 실행되는 트랜잭션들은 서로의 작업에 영향을 주지 않아야 한다Durability(지속성)트랜잭션이 성공적으로 완료되면..

DataBase 2025.02.23

[SQLD] 식별자

식별자  식별자엔터티 내의 각 인스턴스를 고유하게 구분하기 위한 속성, 혹은 속성들의 집합을 의미식별자를 통해 데이터의 무결성과 효율적인 관리를 보장할 수 있다비식별자인스턴스를 식별하는데 사용되지 않는 속성으로, 인스턴스를 유일하게 식별하는데 영향을 미치지 않는다예를들어 '이름', '닉네임', '성별' 처럼 중복될 수 있는 속성은 인스턴스를 식별할 수 없기에 비식별자이다  주식별자의 주요 특징유일성주식별자에 의해 엔터티 내 모든 인스턴스가 유일하게 구분되어야 한다최소성주식별자를 구성하는 속성의 수는, 유일성을 만족하는 최소한의 수로 구성되어야 한다불변성주식별자가 한번 특정 엔터티에 지정되면, 그 식별자의 값은 변하지 않아야 한다존재성주식별자의 값은 반드시 존재해야 하며, NULL 값을 가질 수 없다  식..

DataBase 2025.02.13

[SQLD] 데이터모델링의 관계

관계   관계두 엔터티 간의 논리적인 연관성을 의미엔터티의 인스턴스들이 서로 어떻게 연관되어 있는지를 나타낸다  관계의 개념적 분류존재에 의한 관계한 엔터티가 다른 엔터티에 속하거나 포함되는 등, 존재 자체로 형성되는 관계ex) 학생 - 학과: '소속된다'라는 관계는 학생이 학과에 속하는 존재적 관계임행위에 의한 관계엔터티 간의 상호작용이나 행위를 통해 형성되는 관계ex) 고객 - 상품: '주문한다'라는 관계는 고객이 상품을 주문하는 행위에 의해 형성되는 관계임  ERD에서의 관계ERD에서는 '존재에 의한 관계'와 '행위에 의한 관계'를 구분짓지 않고 동일한 표기법을 사용한다(단일화된 방식) ERD에서 관계 표기법관계명두 엔터티 간의 관계를 나타내는 '동사(Verb)' 형태의 이름관계 차수1:1, 1:N..

DataBase 2025.02.11

[SQLD] 함수 종속성, 정규화, 반정규화

함수 종속성 (Functional Dependency)   함수 종속성(Functional Dependency)특정 속성이 다른 속성을 결정하는 관계를 의미X -> Y == X가 Y를 함수적으로 결정 == X의 값이 정해지면 Y의 값이 항상 고유하게 결정된다잘못 설계된 함수 종속성을 정규화를 통해 제거하면 데이터 무결성 보장, 중복 제거, 저장 공간 절약, 성능 개선 등의 이점이 있다ex) '사원' 테이블 == '사원번호' -> '이름' 의 함수 종속성이 존재: '사원번호'가 정해지면 그에 해당하는 고유한 '이름'이 정해지지만, '이름'은 여러 개가 존재할 수 있으므로 이에 대응하는 '사원번호'가 유일하지 않을 수 있기 때문  함수 종속성의 유형완전 함수 종속 (Full Functional Depende..

DataBase 2025.02.11

[SQLD] 엔터티, 속성, NULL 속성

Entity(엔터티)   엔터티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로, 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합1976년 '피터 첸'에 의해 Entity-Relationship Model이라는 표기법이 만들어짐  엔터티 조건반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다유일한 식별자와 유일한 이름을 가져야 한다두 개 이상의 영속성 인스턴스의 집합이어야 한다(싱글톤 제외)두 개 이상의 속성(attribute)을 가져야 한다다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다엔터티는 업무 프로세스에 의해 이용되어야 한다  엔터티의 발생 시점에 따른 분류기본 엔터티(Fundamental..

DataBase 2025.02.05

[SQLD] 데이터 모델링, 데이터 독립성, 스키마

데이터 모델링   데이터 모델링정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법으로, 시스템 구현'만'을 위해 수행하는 테스크가 아니다현실 세계의 데이터를 약속된 표기법으로 표현하는 과정데이터베이스를 구축하기 위한 분석 및 설계의 과정데이터 모델링 자체로도 업무를 설명하고 분석할 수 있어야 한다 데이터 모델링 유의점중복데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다비유연성'데이터의 정의'를 '데이터의 사용 프로세스'와 분리이를 통해 '데이터나 프로세스의 작은 변화'가 '애플리케이션과 데이터베이스'에 중대한 변화를 일으킬 수 있는 가능성을 줄인다 비일관성데이터간의 연관된 정보가 있는데 이를 무시하고 데이터가 갱신되는 경우를 말한다데이터의 중복이 없더라도 비일관성은 발생할 수..

DataBase 2025.02.05

[Real MySQL 8.0] RDBMS중 왜 MySQL을 선택했는가?

RDBMS를 선택하기 위한 기준은 다음 순서대로 생각해보면 좋다안정성성능과 기능커뮤니티나 인지도여기서 추가적으로 비용까지 고려해서 비교해보자.비교할 RDBMS들은 'DB-Engines'의 랭킹 1위부터 4위까지중, windows 플랫폼에 최적화된 'Microsoft SQL Server'를 제외하고 'Oracle', 'MySQL', 'PostgreSQL'만으로 비교해보겠다.      비교 1. 안정성 - ACID 준수 여부 -> ACID를 준수하는가?Oracle: ACID를 완벽하게 준수PostgreSQL: ACID를 완벽하게 준수MySQL: InnoDB 엔진 사용시 ACID를 준수하지만, 기본 설정에서는 읽기 일관성(Read Consistency)를 보장하지 않기에, 별도 설정이 필요하다- 장애 발생 시..

DataBase 2025.01.24

2024 .

2024년 마지막 날이다 올해 처음으로 취업 준비를 했다 취준 시기는 남자 인생에서 가장 비참한 시기라는 말이 있듯, 나에게도 가장 비참한 해로 끝이 난 것 같다    올해의 시작은 기대 반 걱정 반이었다 아무것도 모르던, 사회에 나가본 적도 없던 20대 5명이 창업이라는 달콤한 말에 이끌려 아무런 각오 없이 뛰어들었다 지금 와서 돌이켜보면, 그 누구 한 명 진심으로 창업에 대해 다가간 적 없었던 것 같다 매번 마감기한에 쫓겨 지원금 기획서를 작성하고, 출근해서는 취업을 위한 이력서와 포트폴리오를 작성하기에 바빴었다 누구 하나 예외 없이. 그렇게 실력도, 자신감도 없이 도전했던 창업은 무려 6개월을 끌다가 끝이 났다    이후 나는 인생에서 처음으로 알바가 아닌 직장을 구하게 됐다 정규직도 아닌 계약직이..

회고록 2024.12.31