11장 관계형 데이터베이스의 주요 지식

뷰 : 가상의 테이블 뷰 가상의 테이블 테이블에서 필요로 하는 부분만 선택하여 만들어 놓은 데이터의 집합 뷰의 특징 데이터 가공을 통해 마치 테이블처럼 내용을 보여 줄 수 있음 자주 쓰거나 복잡한 SQL 문의 결과를 미리 만들어 놓을 수 있음 여러 테이블을 조인하여 하나의 뷰로 생성할 수 있음 사용자별로 접근 권...

2024년 1월 11일
·
0개의 댓글
·

10장 DDL : 테이블과 열 조작하기

DDL이란? DDL Data Definition Language 데이터 정의어 테이블과 관련 열을 조작(생성, 변경, 삭제)하기 위한 언어 따로 커밋하지 않아도 데이터베이스에 즉각 반영되며 데이터 사전에 기록됨 CREATE : 테이블 생성하기 CREATE 새로운 테이블을 생성할 때 사용 productid(number 타입),...

2024년 1월 10일
·
0개의 댓글
·

9장 데이터 무결성과 트랜잭션 : 데이터베이스 운영 기본 규칙

데이터 무결성과 제약 조건 데이터 무결성 데이터베이스에 저장된 데이터 값과 사용자가 의도한 데이터 값은 일치해야 함 데이터는 정확성, 유효성, 일관성, 신뢰성이 지켜져야 함 → 이를 위해 데이터를 처리할 때마다 검사하여 무결성을 유지하는 것을 데이터 무결성이라 함 데이터 무결성의 종류 | 유형 | 설명 | | --- ...

2024년 1월 9일
·
0개의 댓글
·

8장 DML : 데이터의 삽입/갱신/삭제

DML이란? DML Data Manipulation Language 데이터 조작어 트랜잭션을 다루는 명령어 DML의 종류 | 명령어 | 설명 | | --- | --- | | INSERT | 테이블에 새로운 행을 삽입한다. | | UPDATE | 테이블에 있는 행의 내용을 갱신한...

2024년 1월 8일
·
0개의 댓글
·

7장 서브쿼리 : SELECT 문 안에 있는 SELECT 문

서브쿼리란? 서브쿼리 SELECT 문 안에 다시 SELECT 문이 기술된 형태의 쿼리 서브쿼리의 결과는 메인 쿼리의 조건으로 사용됨 서브쿼리의 종류 | 서브쿼리 종류 | 설명 | | --- | --- | | 단일 행 서브쿼리 | 하나의 행을 검색하는 서브쿼리 | | 다중 행 서브쿼리 | 하나 이상의 행을 검색하...

2024년 1월 4일
·
0개의 댓글
·

6장 조인과 집합 : 여러 개의 테이블 연결하기

조인이란 조인(join) 관계형 데이터베이스의 테이블 안에 있는 행들을 논리에 따라 연결할 수 있도록 하는 기법 조인 기법의 종류 | 조인 기법 | 설명 | | --- | --- | | 곱집합 (cartesian product) | 가능한 모든 행을 조인 | | 동등 조인 (equi ...

2024년 1월 4일
·
0개의 댓글
·

5장 ERD : 데이터베이스 개체 설계도

키와 제약 조건 : 개체 속성 표기법 ERD Entity Relationship Diagram 개체(테이블)간의 관계를 이해하기 쉽게 그림으로 표현한 것 테이블의 상세 구조 행 employee에 대한 모든 데이터를 나타내는 단일 행, employee_id 값에 의해 유일하게 식별됨 기본키 employeeid 열은...

2024년 1월 3일
·
0개의 댓글
·

4장 함수 : 함수로 데이터를 쉽게 가공하기

함수란 함수 미리 정의된 기능을 통해 데이터를 좀 더 편리하게 조작할 수 있도록 도와줌 함수를 사용하는 목적 데이터 값을 계산하거나 조작함 (단일 행 함수 : 한 번에 하나의 데이터를 처리하는 함수) 행의 그룹에 대해 계산하거나 요약함 (그룹함수 : 여러 건의 데이터를 동시에 처리하여 해당 그룹에 해당하는...

2024년 1월 1일
·
0개의 댓글
·

3장 SELECT : 데이터 조회의 기본

[SELECT문의 기본 문법] SELECT 문 데이터베이스에 있는 데이터 조회 시 사용 단지 선택된 데이터를 화면에 출력할 뿐 데이터의 값이 데이터베이스에 반영(삽입, 갱신, 삭제)되지는 않음 employees 테이블의 모든 정보 출력하기 employees 테이블에서 employeeid, firstname, last_name을 출력하기 ...

2023년 12월 27일
·
0개의 댓글
·

Lock 기초

이렇게 하면 바로 터짐 vector는 공간이 부족해지면 더 큰 공간을 만들고 데이터를 옮김 멀티 스레드 환경은 다른 스레드를 기다려주지 않음 (이전에 Add, Sub에서 확인한 것 처럼) 그러니까 t1 쓰레드에서 공간이 부족해서 기존 공간을 줄이고 공간을 늘려야지 할 때 t2도 기존 공간을 지우고 늘려야지 라고 한다면 같은 공간을 두 번 지우게 됨 ...

2023년 12월 20일
·
0개의 댓글
·

Atomic

멀티 스레드 환경에서 공유 데이터를 사용할 때 문제점 멀티 스레드 환경에서 stack은 각기 자신의 영역을 가짐 그러나 힙이나 데이터 영역 같은 경우에는 공유함 (현재 sum은 전역이므로 데이터 영역에 있음 → 공유되는 데이터임) 디스어셈블리로 보면 아래와 같이 sum 함수 내부의 sum++은 세 가지 과정을 거침 어셈블리어는 오른쪽부터 읽으면 됨 s...

2023년 12월 19일
·
0개의 댓글
·

표준 스레드 라이브러리를 이용해서 스레드 구동하기

에러 발생 -> main 함수가 스레드 보다 먼저 끝나는 경우가 있음 이럴 때는 join()를 사용해서 해당 스레드가 끝날 때 까지 main 스레드가 기다리도록 만들어야 함 그런데 데몬 프로세스와 같이 스레드 객체에서 실제 스레드가 분리된 경우도 있으므로 아래와 같이 주로 사용함 HelloThread() 내에 중단점을 걸고 확인 해 보면 아래와 같이 ...

2023년 12월 17일
·
0개의 댓글
·

1장_관계형 데이터베이스와 SQL

[이제는 데이터의 시대] 데이터를 수집하는 방법 관련 부서에 요청한다 나와 IT 담당자 간 생각의 괴리가 생기면 원하는 데이터를 얻을 때 까지 계속해서 요청해야 함 추가적인 가공을 원할 때도 계속 요청해야 함 직접 데이터베이스를 조작한다 데이터베이스를 마음대로 조작하여 결과물을 추출할 수 있음 ...

2023년 12월 13일
·
0개의 댓글
·

Part3_HTTP

[HTTP(Hypertext Transfer Protocol)의 개요] [웹 서버의 이해] 웹 서버란 HTTP를 기반으로 하여 웹 페이지가 들어 있는 파일을 클라이언트에게 전송해 주는 프로그램 HTTP란 Hypertext Transfer Protocol의 약자(Hypertext란 사용자의 선택에 따라 이동이 가능한 조직화된 정보) HTTP는 어플리케...

2023년 12월 4일
·
0개의 댓글
·

Part2_멀티쓰레드 기반의 서버 구현

쓰레드는 리눅스보다는 윈도우즈에서 보다 친숙한 개념임 그러나 웹이 발전하면서 유닉스 계열의 환경에서도 쓰레드의 중요성이 부각됨 [프로세스와 쓰레드] 이전에 프로세스를 생성하면 프로세스마다 완전히 독룁된 메모리 공간을 유지하기 때문에 프로세스간 통신을 위해 select 함수를 기반으로 하는 멀티플렉싱 서버의 구현 예제를 공부했었음 그러나 멀티 프로세스 서...

2023년 12월 3일
·
0개의 댓글
·

Part2_입력과 출력 스트림의 완벽 분리

fopen 함수를 호출해서 파일을 열고 나면, 파일로부터 데이터를 송/수신할 수 있게 됨 fopen 함수를 호출해서 파일을 여는 경우 스트림이 생성되었다고 표현함 스트림이란 “데이터가 이동하는 흐름”을 의미 (일종의 다리) 파일 포인터를 스트림이라고 표현하는 것은 아니고 파일 포인터 생성 시 데이터 입/출력을 위한 내부적인 상황(다리가 놓여진 상황)을 의미...

2023년 12월 3일
·
0개의 댓글
·

Part2_소켓과 표준 입출력

[표준 입출력 함수의 장점] (1) 이식성이 좋아진다 시스템 함수들은 운영체제에 종속적이기 때문에 다른 시스템에서 프로그램을 실행시켜야 할 때 문제가 될 수도 있음 이식성을 높이기 위해서는 어떻게 해야할까? 모든 시스템이 지원해 주는 표준화된 함수들을 사용하면 됨(ANSI표준 C의 입/출력 함수) (2) 효율성을 높일 수 있다. 소켓을 생성하게 되면...

2023년 12월 2일
·
0개의 댓글
·

Part1_Multicasting & Broadcasting

[멀티캐스트] 멀티캐스트 방식은 UDP를 기반으로 하는 전송 방식임 둘 이상의 호스트에게 데이터를 전송하고자 하는 경우에는 데이터를 두 번 전송해야 함 그러나 멀티캐스트 방식에서는 데이터 전송의 목적지가 하나의 호스트가 아니라 멀티캐스트 그룹에 속해 있는 모든 호스트들이 목적지가 됨 → 단 한번의 데이터 전송으로 여러 클라이언트들에게 데이터를 전달할 수 ...

2023년 11월 30일
·
0개의 댓글
·

Part1_IO 고급 소켓 입출력

[recv & send 입/출력 함수] recv와 send는 데이터 입/출력 시에 방법에 있어서 옵션을 줄 수 있도록 인자를 하나 더 받는 다는 것을 제외하면 read, write와 동일한 기능을 하는 함수임 [flags에 들어갈 수 있는 옵션의 종류와 그 의미] | flags | Description | recv | send | | --- | ---...

2023년 11월 29일
·
0개의 댓글
·

Part1_IO 멀티플렉싱

[I/O 멀티플렉싱 기반의 서버] 프로세스의 생성은 상당히 많은 대가를 지불해야 하는 연산 과정을 거침 그만큼 생성 후에도 시스템의 자원을 많이 차지하게 됨 또한 모든 프로세스들은 서로 독립적인 메모리 공간을 할당 받아서 사용하기 때문에 프로세스간 통신을 하기 위해서는 다소 복잡한 방법을 선택할 수 밖에 없었음 (IPC) 하나의 프로세스로도 여러 클라이언...

2023년 11월 28일
·
0개의 댓글
·