본문 바로가기

분류 전체보기117

[Database] SQL(2) | DML – SELECT(3) 집단함수를 사용해 튜플의 통계를 낼 수 있습니다.집단함수에는 다음과 같은 키워드가 존재합니다.COUNT : 튜플이나 값의 개수 반환SUM : 값의 합 반환MAX : 값의 최댓값 반환MIN : 값의 최솟값 반환AVG : 값의 평균 반환SELECT SUM(SALARY). MAX(SALARY), MIN(SALARY), AVG(SALARY)FROM EMPLOYEE, DEPARTMENTWHERE DNO=DNUMBER AND DNAME='Research'‘Research’ 부서에 있는 모든 사원들의 봉급의 합, 최고 봉급, 최저 봉급, 봉급 평균을 구하는 구문입니다.SELECT COUNT(*)FROM EMPLOYEE회사 내의 총 종업원의 수를 출력합니다.SELECT COUNT(*)FROM EMPLOYEE, DEPA.. 2025. 4. 29.
[Database] SQL(2) | DML – SELECT(2) SELECT 연산을 사용하다 보면, 테이블은 다른데 애트리뷰트 명은 동일한 경우가 있습니다.ex) EMPLOYEE의 DNUMBER 애트리뷰트와 DEPARTMENT의 DNUMBER 애트리뷰트이런 경우 점(.)을 이용하여 애트리뷰트를 구분합니다.SELECT EMPLOYEE.NAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DEPARTMENT.NAME='Research' AND DEPARTMENT.DNUMBER=EMPLOYEE.DNUMBER같은 릴레이션을 두 번 참조하는 경우 (상사-부하 관계 등) 별명(alias)을 이용하여 두 릴레이션이 서로 다른 것처럼 정의합니다.SELECT E.NAME, S.NAMEFROM EMPLOYEE E, EMPLOYEE SWHERE E.SUPERSS.. 2025. 4. 29.
[Database] SQL(2) | DML – SELECT(1) 테이블에서 데이터를 검색하는 SELECT 연산입니다.SELECT 기본 구조는 다음과 같습니다.SELECT FROM WHERE EMPLOYEE라는 테이블이 있다고 가정했을 때, 여기서 John의 생일과 주소를 검색하려면 다음과 같이 작성합니다.SELECT BDATE, ADDRESSFROM EMPLOYEEWHERE NAME = "John" ;EMPLOYEE 테이블에서 research 부서에 일하는 모든 종업원들의 이름과 주소를 검색하려면 다음과 같이 작성합니다.SELECT NAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DNAME='Research' AND DNUMBER=DNO ;DNUMBER=DNO를 통해 조인 조건을 나타내며, FROM에서 작성한 두 테이블을 조인 조건에 맞.. 2025. 4. 29.
[Database] SQL(1) | DDL DBMS를 사용하기 위해 SQL이라는 언어를 사용하게 됩니다.SQL에는 2가지 종류가 있습니다. 테이블 자체를 생성하고 관리하는 정의문, 테이블 안 내용들을 관리하는 조작문으로 나뉘어집니다.DDL (Data Definition Language, 데이터 정의어)스키마CREATE SCHEMADROP SCHEMA설계자 (DBA)CREATE TABLEDROP TABLEALTER TABLEDML (Data Manipulation Language, 데이터 조작어)질의어SELECT갱신어INSERTDELETEUPDATE해당 포스트에서는 DDL만 다루며, DML은 다음 포스트에서 다룹니다.스키마CREATE SCHEMA 명령을 통해 스키마를 생성합니다.DROP TABLE 명령을 통해 스키마를 제거합니다.설계자 (DBA)C.. 2025. 4. 29.
[Database] 관계 데이터 모델과 관계 데이터베이스 제약조건 개념적 세계에서는 ER 모델을 표현하여 엔티티를 표현했습니다.논리적 세계에서는 관계 모델을 이용해 relation(릴레이션)을 표현합니다.릴레이션은 테이블의 형태를 띄며, 튜플(행, 레코드)의 집합입니다.정리하자면 다음과 같습니다.테이블 : 릴레이션행 : 튜플열 : 애트리뷰트 (속성)릴레이션에 관련된 용어들인데, 일부는 ER 모델링 용어와 공유합니다.도메인 : 원자 값의 범위릴레이션 스키마 : 릴레이션과 애트리뷰트의 집합릴레이션 차수 : 릴레이션 애트리뷰트 개수릴레이션 튜플릴레이션 상태릴레이션 튜플 순서는 의미가 없습니다.릴레이션이 모두 만족해야 하는 제약조건이 존재합니다.제약조건의 구성은 다음과 같습니다.도메인 제약조건키 제약조건엔티티 무결성 제약조건참조 무결성 제약조건하나씩 살펴보면 이렇습니다.1. .. 2025. 4. 29.
[Database] E-R 개념적 데이터 모델링 DB 설계 단계는 다음과 같습니다.요구사항 수집개념적 DB 설계 (entity)논리적 DB 설계 (tuple)물리적 DB 설계 (record)논리적 DB 설계 단계부터는 DBMS에 의존적이지만, 개념적 DB 설계는 독립적으로 이루어집니다.다음과 같은 요구사항이 수집되었다고 가정해 봅니다.회사는 여러 부서들로 구성된다. 각 부서마다 고유한 이름, 고유한 번호, 부서를 관리하는 특정 사원이 있다. 사원이 부서를 관리하기 시작한 날짜도 유지한다. 한 부서는 여러 위치에 있을 수 있다.한 부서는 여러 프로젝트들을 관리한다. 각 프로젝트는 고유한 이름, 고유한 번호, 한 개의 위치를 가진다.각 사원에 대해서 이름, 주민등록번호, 주소, 급여, 성별, 생년월일을 저장한다. 한 사원은 한 부서에 속하지만, 여러 프.. 2025. 4. 29.
[데이터 통신] 물리 계층 - 아날로그 전송 이 글에서는 아날로그 신호를 전송할 때의 과정을 다룹니다. 아날로그 신호 (ADC)-> 디지털 데이터 (digital modulation)-> 아날로그 신호 (analog modulation)-> 아날로그 신호 (고대역) 1. 디지털 대 아날로그 변환 디지털 데이터를 아날로그 데이터를 변환합니다.이걸 왜 하는가?서로 다른 주파수 대역을 활영하여 여러 신호를 동시에 전송할 수 있습니다.주파수가 높아져 안테나 길이와 크기를 줄일 수 있습니다.대역폭을 증가시켜 데이터 전송속도를 향상시킬 수 있습니다.아날로그 전송에서 정보 신호의 기본이 되는 고주파 신호를 반송파 신호(carrier signal)라고 합니다. 1-1. 진폭 편이 변조 (ASK)반송파의 진폭을 변화시키는 방식입니다. 1-2. 주파수 편이 변조 (.. 2025. 4. 22.
[데이터 통신] 물리 계층 - 디지털 전송 이번 글은 디지털 신호를 전송하기 위한 과정을 다룹니다. 아날로그 신호 (ADC)-> 디지털 신호 (encoding)-> 디지털 신호 과정으로 변환이 되며,최종적으로 변환된 디지털 신호를 전송하게 됩니다. 1. 디지털 대 디지털 변환 디지털 데이터에서 디지털 신호로 변환하는 것을 말하며, 이를 encoding이라고 합니다.크게 세 가지 방식이 있습니다. 1-1. 회선 부호화(line coding) 디지털 데이터를 디지털 신호로 바꾸기 위한 가장 기본적인 방법입니다.송신자는 디지털 데이터를 디지털 신호로 부호화하며,수신자는 디지털 신호를 복호화하여 디지털 데이터를 재생합니다. 신호랑 데이터를 계속 말하고 있는데... 이것들은 무엇인가데이터 요소는 정보를 표현할 수 있는 가장 작은 개체입니다. (bit)신호.. 2025. 4. 22.
[데이터 통신] 물리 계층 이전 글에도 작성되어 있지만, 네트워크 모델은 여러 모듈로 분리하여 모듈화를 합니다.이번 글은 네트워크 모델의 계층 중 가장 낮은 계층인 물리 계층에 대해 살펴봅니다.물리층 통신은 비트(bit) 단위로 이루어집니다.또한 데이터 흐름(0과 1)은 전자기 신호 형태로 변환되어야 합니다. 데이터는 크게 두 가지로 분류됩니다.연속적인 값을 가지는 아날로그 데이터와이산적인 값을 가지는 디지털 데이터가 있습니다. 이 데이터를 표현하는 신호(signal)도 두 가지가 있습니다.마찬가지로,연속적인 파형을 가지는 아날로그 신호와이산적인 파형을 가지는 디지털 신호가 있습니다. 아날로그 신호나 디지털 신호에 상관없이,신호의 파형에 따라 나뉘는 특성들도 있습니다.신호에서 특정한 패턴(cycle)이 존재하는 경우, 이를 주기 .. 2025. 4. 22.
[데이터 통신] 네트워크 모델 네트워크에서 각 노드는 특정한 규칙을 통해 서로 통신하게 됩니다.이러한 규칙을 정의한 것을 프로토콜(Protocol)이라고 합니다. 프로토콜은 복잡한 통신 시스템을 구조적으로 나누어 관리하기 위해, 계층화를 통해 여러 모듈로 분할하며 각 계층을 독립적으로 설계합니다. 이를 프로토콜 계층화라고 합니다.프로토콜 계층화는 아래의 두 원칙을 따릅니다.상반되는 두 가지 작업을 수행 (말하기 / 듣기, 암호화 / 복호화, 보내기 / 받기)각 계층의 객체는 서로 동일 (평문, 암호문, 우편 등)계층 간 논리적 연결을 통해 각 계층에서 생성된 객체가 전달됩니다. 프로토콜 계층화가 이루어지는 과정을 확인하기 위해 A와 B가 대화하는 상황을 가정해 보겠습니다. A와 B가 만나서 대화를 합니다.둘이 정해놓은 규칙(인사, .. 2025. 4. 18.