cs 8

데이터베이스 조인(Join) 정리

JOIN(조인) JOIN이란 '연결하다' 라는 뜻을 지닌 단어이다. 이 단어의 뜻처럼, 데이터베이스에서는 둘 이상의 테이블을 연결해서 테이블을 검색하는 방법을 이야기 한다. JOIN의 종류 INNER JOIN OUTER JOIN CROSS JOIN SELF JOIN 그렇다면, 이제 다음과 같은 테이블 두 개를 가지고 각각의 조인에 대해 알아보자. [Star 테이블] ID Name DepNo 1 강호동 10 2 이수근 10 3 유재석 20 4 박명수 20 5 안재현 30 6 송민호 30 7 이병헌 NULL [Dep 테이블] DepNo DepName 10 1박2일 20 무한도전 30 신서유기 40 이경규가간다 1. INNER JOIN (이너조인) 이너조인은 위의 그림처럼 두 개의 테이블에서 공통된 요소들을 ..

데이터베이스 관계대수

관계 데이터 모델 관계 데이터 모델에서 지원하는 언어는 총 2가지가 있다. 관계 해석 - 원하는 데이터만 명시하고 질의를 "어떻게 수행할 것인가"는 명시하지 않는 선언적 언어 관계 대수 - "어떻게 질의를 수행할 것인가"를 명시하는 절차적 언어 관계 대수 (Relation Algebra) 릴레이션들을 다루는 연산들 기존의 릴레이션들로부터 새로운 릴레이션을 생성함. 연산자들을 사용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음. 기본적인 연산자들의 집합으로 이루어짐. 결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있음. 단일 혹은 두 개의 테이블들을 입력 받아 결과 테이블을 생성. 집합 연산을 토대로 만든 것이 관계 대수이며, 기본적으로는 집합 연산자에 속함. 특징 셀렉션 (Selec..

데이터베이스 키(key)의 개념 및 종류

데이터베이스 키(Key) 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때, 다른 튜플들과 구별 할 수 있는 유일한 기준이 되는 속성 키(key)의 특징 Key의 특징으로는 다음과 같은 종류가 있다. 이 특징들은 Key의 종류에 따라 만족하는 경우도 있고, 그렇지 않은 경우도 있다. 유일성 : 유일한 값을 가져야 함. 최소성 : 최소한의 값으로 식별할 수 있어야 함. 불변성 : 변하는 값이어선 안 됨. 키(Key)의 종류 키의 종류에는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다. 다음의 릴레이션을 예시로 종류 별로 알아보도록 하자. 슈퍼키 유일성 O , 최소성 X 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성을 만족하므로 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구..

데이터베이스(DB) 용어 및 기초개념 정리

데이터베이스 데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다. 데이터베이스는 데이터베이스 관리 시스템(DBMS)에 의해 제어된다. 데이터베이스는 다음의 4가지 특징을 갖는다. 실시간 접근 (real-time accessibility) 계속 변화 (continuous evolution) 동시 공유 (concurrent sharing) 내용으로 참조 (content reference) 주로 사용되는 데이터베이스의 종류로 크게 2가지가 있다. 관계형 데이터베이스 행과 열로 구성된 테이블간의 관계를 나타내며, SQL을 통해 관리한다. MySQL, Maria DB, MS-SQL 등이 있다. NoSQL 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저..

CPU의 구조와 원리

중앙처리장치(CPU)란? 중앙처리장치(CPU)는 명령어의 해석과 자료의 연산, 비교등의 처리를 제어하는 컴퓨터 시스템의 핵심장치이다. 다양한 입력 장치로부터 정보를 입력받아 처리한 후, 그 결과를 출력장치로 보내는 일련의 과정을 제어하고 조정하는 일을 수행한다. CPU는 사람의 두뇌와 같이 컴퓨터의 모든 시스템을 제어, 처리하는 가장 핵심적인 장치라고 할 수 있다. CPU의 구성요소 CPU는 크게 제어 장치, 연산 장치(ALU), 레지스터 와 각 구성 요소를 연결하는 내부 버스로 구성되어 있다. 1. 제어 장치 (CU, Control Unit) 컴퓨터 시스템의 작동을 통제하고 지시하는 장치 기억 장치로부터 프로그랭 명령을 순차적으로 꺼내 해독하고, 해석에 따라서 명령어 실행에 필요한 제어 신호를 기억장치..

CS/컴퓨터 구조 2021.11.05

프로세스와 스레드 (Process vs Thread)

오늘은 운영체제 중에서도 가장 중요하다고 꼽히는 프로세스와 스레드 및 차이점에 대해 알아보자. 먼저, 프로세스와 스레드를 알아보기 전에 프로그램 이라는 개념에 대해 알아야 한다. 프로그램 프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가지 않은 정적인 상태를 말한다. 즉, 메모리에 올라가지 않은 상태이기 때문에 아직 운영체제로부터 독립적인 메모리 공간을 할당받지 않은 상태이며 정적인 상태이기 때문에 아직 실행되지 않고 가만히 있는 상태이다. 즉, 그냥 코드 덩어리 라고 할 수 있다. 그럼 이를 인지한 후, 본격적으로 프로세스와 스레드에 대해 알아보자. 프로세스 프로세스란, 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다. 컴퓨터에서 실행되고 있다는 것은 운영체제로부터 독립적인 메..

CS/운영체제 2021.11.01

[자료구조] 그래프(Graph) 개념 정리

그래프란? 그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조이다. 정확히는 정점(Vertex)간의 관계를 표현하는 조직도라고 볼 수 있다. 이러한 면에서 트리는 그래프의 일종인 셈이다. 하지만 그래프는 트리와는 달리 정점마다 간선이 있을 수도 있고 없을 수도 있으며, 루트노드와 부모와 자식이라는 개념이 존재하지 않는다. 그래프와 트리의 차이점에 대해서는 아래의 표로 좀 더 자세하게 설명하겠다. 그래프와 트리의 차이 그래프와 관련된 용어 정점(Vertex) : 노드(node) 라고도 하며 정점에는 데이터가 저장된다. (0, 1, 2, 3) 간선(Edge) : 정점(노드)를 연결하는 선으로 link, branch 라고도 부른다. 인접 정점(adjacent Vertex) : 간선에 의해 직접..

CS/자료구조 2021.06.07

[자료구조] 배열과 연결리스트 (Array & LinkedList)

배열 vs 연결리스트 배열 배열은 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조이다. 메모리상에서 연속적으로 저장되어 있는 특징을 갖기때문에, index를 통한 접근이 용이하다. 배열의 크기는 처음 생성할 때 정하며 이후에는 변경할 수 없다. 시간복잡도 탐색: O(1) 단, 접근하고자 하는 인덱스를 알고있어야 한다. 순차적으로 탐색시에는 O(n) 삽입 및 삭제: 배열의 처음 또는 중간에 삽입 및 삭제: O(n) 삽입 지점 이후의 데이터를 옮겨야 하기 때문이다. 배열의 끝에 삽입 및 삭제: O(1) 연결리스트 연결리스트는 여러 개의 노드들이 순차적으로 연결된 형태를 갖는 자료구조이며, 첫번째 노드를 헤드(Head), 마지막 노드를 테일(Tail) 이라고 한다. 각 노드는 데이터와 다음..

CS/자료구조 2021.05.21