What are the key principles of the Agile Manifesto?

  • Detailed documentation
  • Individuals and interactions
  • Responding to change
  • Working software
The Agile Manifesto emphasizes individuals and interactions over processes and tools, valuing working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. These principles guide Agile teams in prioritizing people and adaptability in software development.

Composite indexes consist of _______ columns.

  • Single
  • Multiple
  • Unique
  • Primary
Composite indexes combine multiple columns into a single index, allowing for efficient retrieval based on multiple criteria. Therefore, option 2, "Multiple," accurately describes composite indexes.

Explain the purpose of SQL indexes and their impact on query performance.

  • Enhances data security
  • Ensures data integrity
  • Improves data retrieval speed
  • Reduces storage space
SQL indexes are used to improve data retrieval speed by creating a sorted reference to data in a table. This reduces the time required to search and fetch specific records, especially in large datasets. Indexes don't impact storage space significantly but rather optimize data access, ensuring faster query performance. Indexes also contribute to enhancing data security by facilitating efficient data retrieval for authorized users.

During the ___________ phase, developers write and test the actual code.

  • Design
  • Testing
  • Maintenance
  • Implementation
The correct option is Implementation. This phase is where the actual coding takes place based on the design specifications developed in the previous phases. Developers write, compile, and debug the code to ensure it meets the defined requirements. Additionally, testing activities are initiated during this phase to identify and fix defects early in the development process. Once the implementation phase is complete, the software is ready for testing and quality assurance processes before deployment.

Explain the Banker's algorithm for deadlock avoidance.

  • Allocating resources based on available units
  • Detecting circular wait situations and resolving them
  • Initiating priority-based process scheduling
  • Preventing processes from holding resources forever
The Banker's algorithm is a resource allocation and deadlock avoidance technique used in operating systems. It works by keeping track of the available resources and the maximum resources that each process may request. The algorithm then simulates resource allocation to avoid deadlock by only granting resource requests that can be satisfied without leading to a circular wait condition. By ensuring that the system remains in a safe state (i.e., no deadlock can occur), the Banker's algorithm helps in efficient resource utilization and preventing situations where processes hold resources indefinitely, leading to system deadlock.

You're tasked with optimizing a database query that is running slow. What steps would you take to identify and resolve the performance bottleneck?

  • Analyze query execution plan
  • Check server hardware
  • Implement caching mechanisms
  • Optimize database schema
Analyzing the query execution plan involves examining how the database engine executes the query, including the order of operations, use of indexes, and resource consumption. Checking server hardware involves ensuring that the server has sufficient resources like CPU, RAM, and disk I/O for optimal performance. Optimizing the database schema includes normalization, indexing, and proper data types. Implementing caching mechanisms can reduce the need for repeated querying by storing frequently accessed data temporarily. These steps collectively help identify and address the performance bottleneck in a database query.

What is the SOLID principle in OOP? Explain one of its principles.

  • Dependency Inversion Principle
  • Interface Segregation Principle
  • Open/Closed Principle
  • Single Responsibility Principle
The SOLID principle in Object-Oriented Programming (OOP) is a set of five principles aimed at making software designs more understandable, flexible, and maintainable. The Single Responsibility Principle (SRP) states that a class should have only one reason to change, meaning it should have only one job or responsibility.

You're working on a project where the input data is nearly sorted. Which sorting algorithm would you choose and why?

  • Bubble Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort
Insertion Sort is the most suitable choice for nearly sorted data. It has a time complexity of O(n) in the best-case scenario, making it efficient when data is already close to its final sorted position. Merge Sort, Quick Sort, and Bubble Sort, on the other hand, have higher time complexities for nearly sorted data, making them less efficient in this scenario.

What is the primary difference between a process and a thread?

  • Concurrency
  • Independence
  • Memory usage
  • Resource ownership
A process is an independent entity that has its own address space and resources, while a thread is a lightweight entity that exists within a process and shares the same address space and resources with other threads in that process. This difference in independence and resource sharing is crucial for understanding how processes and threads operate within an operating system.

Which normal form ensures that each attribute is dependent only on the primary key?

  • First Normal Form (1NF)
  • Fourth Normal Form (4NF)
  • Second Normal Form (2NF)
  • Third Normal Form (3NF)
Third Normal Form (3NF) ensures that each non-key attribute is dependent only on the primary key, which helps in eliminating transitive dependencies and achieving a more organized database structure.