CS 94

[데이터 베이스] 제약조건 정리

데이터베이스에는 무결성을 위한 제약조건이 있는데, 개체 무결성, 참조 무결성, 도메인 무결성이 있습니다. 개체 무결성 제약 조건 기본 키를 구성하는 속성은 NULL값을 가질 수 없다는 것입니다. 예를 들어 ID가 기본키로 정의되어 있으면 튜플을 추가할 때 ID가 NULL이거나, 중복된 값을 가지면 안된다는 것입니다. 참조 무결성 제약 조건 외래 키 값이 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 것입니다. 또한 도메인도 같아야 합니다. 릴레이션은 참조할 수 없는 외래 키 값을 가질 수 없습니다. 아래의 예시에서 Insert into WORKS_ON. 로 튜플을 삽입할 수 있을까요? 아닙니다. 왜냐하면 Works_on의 Pno가 참조하는 Project의 Pnumber에 7이 없기 때문입니다..

[알고리즘] 버블정렬과 삽입정렬

버블 정렬은 맨 왼쪽 원소부터 바로 이웃한 원소와 비교하면서 정렬하는 것이고, 삽입 정렬은 이미 정렬된 부분과 정렬할 부분을 나눠 정렬하는 것입니다. 알고리즘의 핵심인 정렬 중 버블 정렬과 삽입 정렬에 대해 알아보겠습니다. 1. 버블 정렬 개념 맨 왼쪽 원소부터 바로 이웃한 원소와 비교해 가면서, 큰 수가 오른쪽으로 가도록 교환하는 정렬입니다. 맨 끝까지 가면 가장 큰 원소를 찾은 것이므로, 이 과정을 다시 나머지 n-1개 수에 대해 반복합니다. 예시) 5 3 1 4 2를 오름차순으로 정렬 특징 정확성을 보이기 제일 쉽습니다. 시간복잡도 처음 가장 큰 원소를 구할 때 n-1 번을 비교하고, 두번째 큰 원소를 비교할 때 n-2를 비교합니다. 이런식으로 (n-1) + (n-2) + ... + 2 + 1 = ..

CS/알고리즘 2022.09.22

[컴퓨터구조] 컴퓨터 성능 계산과 암달의 법칙

컴퓨터구조에서 성능을 알기 위한 공식은 여러개로, 관련 개념으로 CPI, MIPS 등이 있습니다. 각각의 개념은 무엇이고 어떤 기준으로 컴퓨터의 성능을 평가하는지 알아보겠습니다. 1. 컴퓨터 성능의 기준 컴퓨터 성능의 기준은 무엇일까요? 예를 들어 한번에 커피 한잔을 5분 만에 뽑는 커피 머신 A와 한번에 커피 두잔을 7분만에 뽑아내는 커피 머신 B가 있다면 어느 것이 성능이 좋은 것인가요? 개인의 관점에선 A가 더 좋습니다. 하나만 필요하고 제일 빨리 커피를 주는 것이 더 좋으니까요. 이는 응답시간(Response)을 기준으로 판단하는 것입니다. 그러나 두명의 커피를 주문해야하는 팀의 관점에선 B가 좋습니다. 이는 처리율(Throughput)을 기준으로 판단하는 것입니다. 응답 시간으로 컴퓨터의 성능을..

CS/컴퓨터구조 2022.09.21

[컴퓨터구조] 기본 구성 요소

이번 포스팅에서는 컴퓨터의 기본 구성요소인 중앙처리장치, 저장장치 등이 각각 어떤 요소로 구성되어 있고 어떤 역할을 하는지에 대해 알아보겠습니다. 기본 구성요소 - CPU 개념 중앙처리장치인 CPU는 프로세서라고도 불립니다. 컴퓨터 시스템에 부착된 장치의 동작을 제어하고 명령을 실행합니다. 주기억장치의 메모리에서 명령어를 갖고와 명령대로 실행하는 작업을 빠르게 반복합니다.(Fetch + Execution). 구성 제어 장치, 연산 장치, 레지스터, CPU 내부버스로 구성되어 있습니다. ①제어 장치 메인 메모리로부터 적절한 순서로 명령어를 인출, 해독해 컴퓨터 시스템과 연결된 장치들에 제어신호를 보냅니다. ②연산 장치 제어 장치의 명령에 따라 연산을 수행하는 장치입니다. 실행 장치 혹은 ALU로도 불립니다..

CS/컴퓨터구조 2022.09.02

[데이터베이스] 트랜잭션의 개념과 ACID 특징 정리

데이터베이스 트랜잭션의 개념과 ACID 특성에 대해 알려드리고자 합니다. 트랜잭션이란 복수 쿼리를 한 단위로 묶은 것이며, ACID 특성에는 원자성, 일관성, 고립성, 지속성이 있습니다. 이 글에서는 이에 대해 자세히 알아보려 합니다. 데이터베이스 트랜잭션 개념 데이터의 갱신은 단일 쿼리만으로 구성되는 것이 아니라, 복수 쿼리를 연속적으로 수행하는 경우가 대부분이다. 또한 갱신 전의 데이터로 SELECT를 사용할 때 이를 포함해 복수 쿼리를 일관된 형태의 한 덩어리로 다뤄야 한다. 트랜잭션이란 이런 복수 쿼리를 한 단위로 묶은 것이다. 데이터베이스 트랜잭션 특성(ACID) ① 원자성 데이터의 변경(INSERT/DELETE/UPDATE)을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하..

MySql 중복 행 서브 쿼리문에 join이 사용되는 이유

[데이터베이스] MySql 중복 행 서브 쿼리문에 join이 사용되는 이유 목차 1. 문제 상황 2. 해결 과정 3. 해결 문제 상황 각 행정구역의 평균보다 인구수가 더 큰 정보를 쿼리하라. select * from citykorea c1 where population > (select avg(population) from citykorea as c2 where c1.district = c2.district group by district); 데이터베이스 첫걸음 서브 쿼리문 공부중 c1.district = c2.district라는 코드는 왜 들어가는지 의문이 생겼다. sql 쿼리 순서상 where 다음 group by가 오므로 서브 쿼리문의 where을 연산할 당시의 c1.district = c2.dis..

[자료구조] 링크드 리스트 정리 및 구현

[자료구조] 링크드 리스트 정리 및 구현 목차 1. 정리 2. 구현 정리 개념 1) 링크드리스트 기본 리스트가 물리적으로 연속된 메모리에 연결되어있는 것과 달리, 각 원소에 저장되어 있는 다음 원소의 주소에 대한 참조에 의해 연결되는 리스트이다. 2) 노드 링크드 리스트에서의 원소는 다음 원소에 대한 주소를 저장해야하기 때문에 단위로 저장되는데 이를 노드라고 한다. 노드는 원소의 값을 저장하는 데이터 필드와 다음 노드의 주소를 저장하는 링크 필드로 구성된다. 종류 1. 단순 링크드 리스트 노드가 다음 노드와 연결되는 기본적인 링크드 리스트이다. 첫번째 노드를 HEAD, 마지막 노드를 TAIL이라고 한다. 2. 원형 링크드 리스트 마지막 노드가 첫번쨰 노드를 가리키게 하여 리스트 구조를 원형으로 만든 것이..

CS/자료구조 2022.08.07

[알고리즘] 코테 복기 기록

토스 2022 next - 2022-08-06 1차시험 4/7솔 2차 시험 -> 프로젝트를 해야 풀 수 있을듯 (캐시 등) 부족한 점 1. 시간복잡도때문에 제대로 문제를 고민해보지않고 이분탐색이라고 판단하고 풀지 않음. for문 3개로 단순히 풀어 제출하면 되는 문제였음. 피드백: 지금까지의 공부:과정에 큰 문제는 없으나, 문제를 판단하는 부분에 있어 실수를 범함. 값의 범위가 컸지만, 각 경우가 3개씩밖에 없어서 많은 계산이 필요한 문제가 아니었음. 수정: 정확성으로 일단 풀 수 있음 풀자 2. "3으로 또는 2로 자를 수 있다." 등을 수학적으로 풀어내지 못했다. 3으로 나누고 나머지로 판단할 수 있었음. 피드백: 지금까지의 공부: 수학관련 문제는 자주 출제되는 유형이 아니므로, 수학적인 감각을 키우..

CS/알고리즘 2022.08.07

[데이터베이스] SQL JOIN 정리 및 예제

[데이터베이스] SQL JOIN 목차 1. JOIN이란? 2. INNER JOIN 3. OUTER JOIN 4. NATURAL JOIN 5. SELF JOIN JOIN이란? 개념 JOIN은 2개 이상의 테이블을 엮어서 조회하는 연산이다. 종류 1. Inner JOIN: 서로 매칭되는 것만 조회한다. (교집합) 2. Outer JOIN: 매칭되는 데이터를 기준으로 좌측 또는 우측의 데이터도 같이 조회한다. - Outer JOIN은 세 종류가 있습니다 -> Left Outer JOIN, Right Outer JOIN, Full Outer JOIN 3. Natural JOIN: 두 테이블을 JOIN할때 컬럼명, 타입이 같은 모든 컬럼을 JOIN 조건으로 사용한다. 4. Self JOIN: 자기 자신의 테이블을..

728x90