만쥬의 개발일기
article thumbnail
[DATABASE] - Key 완벽 이해하기 (기본키, 후보키, 외래키 등)

key는 데이터베이스의 가장 중요한 개념이다. key는 데이터베이스(혹은 릴레이션) 내에서 특정 레코드(tuple)를 고유하게 식별하기 위해 사용되는 필드 또는 속성(attribute)을 의미하고, 그 종류로는 후보키, 기본키, 대체키, 슈퍼키,외래키 등이 있다. 예시 릴레이션 학생 TABLE 강의 TABLE 후보키 (Candidate Key) 후보 키(Candidate Key)는 데이터베이스 테이블에서 각 튜플을 유일하게 식별하는 데 사용할 수 있는 키들의 부분집합이다. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야한다. 릴레이션에 있는 모든 튜플에 대해서유일성과 최소성을 만족시켜야한다. 유일성을 만족한다는 것은, 예를들어 학생 릴레이션의 경우, 후보키만으로도 한 튜플을 특정지을 수 있는 것이다...

article thumbnail
[CA] Datapath of instructions (R-type, Load/Store,Branch)
🖥️CS/📗컴퓨터구조 2023. 6. 16. 20:25

지난 포스팅을 보지 않았다면 먼저 읽고 오자. [CA] - MIPS의 Datapath 이해하기 오늘 배워볼 것은 MIPS의 Datapath이다. CPU의 핵심 구성 요소인 Datapath는 Computer Architecture의 꽃이고, 이후 CA내용을 이해하는데 있어 굉장히 중요한 요소라고 생각해서 포스팅을 작성하게 되었다. ❓D kangmanjoo.tistory.com 📚MIPS의 instruction들 MIPS의 명령어들은 다음 세가지 + jump 중 하나의 구조를 가지고 있다. 각 명령어의 필드와 일부 예시를 먼저 설명해보겠다. R-type 필드 opcode : 명령어의 종류를 나타내는 필드 rs,rt,rd : 각각 source, source, destination 레지스터를 가리키는 필드 sh..

article thumbnail
[CA] - MIPS의 Datapath 이해하기
🖥️CS/📗컴퓨터구조 2023. 6. 16. 17:27

오늘 배워볼 것은 MIPS의 Datapath이다. CPU의 핵심 구성 요소인 Datapath는 Computer Architecture의 꽃이고, 이후 CA내용을 이해하는데 있어 굉장히 중요한 요소라고 생각해서 포스팅을 작성하게 되었다. ❓Datapath란 Datapath는 컴퓨터 아키텍쳐에서 데이터를 처리하는 논리 회로와 구성 요소들의 집합을 말한다. 데이터 경로라고도 할 수 있고, 무엇보다 CPU의 핵심 구성 요소이기에 중요하다. 앞으로의 최적화 기술들과 주소 연산을 이해하는 데 있어 아주 중요하기에 자세하게 짚고 넘어가는 것이 좋다. 이 포스팅에서는 컴퓨터 아키텍쳐들 중에서도 RISC 기반인 MIPS 아키텍쳐의 Datapth에 대해 알아볼 것이다. 👀Datapath의 구성 요소 (MIPS) Datap..

article thumbnail
[OS] - Concurrency, Race condition, Mutex
🖥️CS/📕운영체제 2023. 6. 6. 16:54

❓Concurrency란 뭘까? 운영체제에서 Concurrency란 상당히 중요한 개념이다. 현대의 컴퓨터는 기본적으로 멀티코어 프로세서를 가지고 있기에 작업의 병렬 처리가 가능하다. 웹 브라우저에서 여러 웹 페이지를 동시에 로드하거나, 편집기에서 여러 문서를 동시에 편집하거나 등등. 즉 concurrency(동시성) 란, 한 번에 여러 작업을 수행할 수 있는 컴퓨터 시스템의 능력을 가리키는 개념이다. OS로부터 각각 자원을 할당 받는 프로세스를 여러개 두고 관리하거나, 한 프로세스에서 자원을 공유하는 여러 스레드를 생산해 멀티 쓰레딩 프로그래밍을 하거나 할때에, concurrency는 빛을 발한다. 하지만 concurrency는 상당히 예민한 개념이다. 한 광산(프로세스)에서 여러명의 인부(스레드)가 ..